04-10-2006, 18:18
|
|
|
חבר מתאריך: 02.12.05
הודעות: 4
|
|
PHPMyAdmin, MySQL, PHP עברית ו-utf8
שלום לכולם.
קראתי הודעות רבות אודות הנושא של קידוד עברית ו-PHPMyAdmin. כל הפתרונות כוללים שימוש בקידוד שהוא אינו utf8. האתר שלי, וגם מסד הנתונים, אמורים לתמוך גם בשפות נוספות מלבד עברית ואנגלית, ולכן חשוב לי שבכל חלקי הפתרון יהיה שימוש ב-utf8.
את הבעיה ניתן לנחש על-פי הנושא. בניתי מסד נתונים עם PHPMyAdmin וקבצי PHP לטפל בו על שרת localhost. בעזרת PHPMyAdmin ביצעתי export של המסד לקובץ SQL על מנת להעלות גם אותו לשרת.
להלן דוגמה מתוך הקובץ:
קוד:
--
-- מבנה טבלה לטבלה `svg_css_translation`
--
CREATE TABLE `svg_css_translation` (
`t_key` varchar(30) NOT NULL,
`t_lang` varchar(2) NOT NULL,
`t_value` varchar(254) NOT NULL,
PRIMARY KEY (`t_key`,`t_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- הזרם מידע לטבלה `svg_css_translation`
--
INSERT INTO `svg_css_translation` VALUES ('About', 'en', 'About');
INSERT INTO `svg_css_translation` VALUES ('About', 'he', 'אודות');
INSERT INTO `svg_css_translation` VALUES ('Actions', 'en', 'Actions');
INSERT INTO `svg_css_translation` VALUES ('Actions', 'he', 'פעולות');
את הקובץ שמרתי כ-utf8 בעזרת notepad והעליתי לשרת דרך PHPMyAdmin שמותקן שם.
הבעיה: ב-PHPMyAdmin הכל נראה בסדר, אך בתסריטי PHP העברית נראית כמו utf בקידוד windows-1255. (שני תווים על המסך במקום כל תו utf אחד).
כל התסריטים שלי שולחים headers מתאימים, והדפדפן מזהה את קידוד הדף כ-utf8.
את הבעיה הזו פתרתי לבסוף, על ידי שליחת הטקסט עצמו מתוך קובץ ה-sql במסך ה-sql של PHPMyAdmin שמותקן שם. האתר שלי פועל כהלכה, אבל ב-PHPMyAdmin זה נראה כמו סימני שאלה.
הוספת השורה
קוד:
mysql_query("SET NAMES ='utf8'");
לתחילת התסריט שלי, לא הניבה שום שינוי.
איך גורמים ל-PHPMyAdmin ולתסריטים שלי, שכתובים גם הם ב-PHP, להתייחס לעברית באותה צורה שהיא תמיד utf8?
|