24-10-2005, 17:09
|
|
|
חבר מתאריך: 08.05.05
הודעות: 58
|
|
למי שחווה בעיות עם עברית בMySQL
רוב הבעיות נובעות מכך שהcharset של השרת אינו תואם את הcharset שבו אתם שולחים אליו מידע ומצפים לקבל אותו.
על מנת שהעברית תישמר ותוצג כמו שצריך חובה לבצע שתי פעולות:
1. לוודא שהשדות שאליהם אתם מכניסים טקסט הם בקידוד UTF-8 או hebrew - ללא קשר לקידוד הדפים של האתר.
2. לאחר שמתחברים לשרת הMySQL (מיד לאחר mysql_connect), צריך לשלוח את השאילתה הבאה:
קוד:
mysql_query('SET NAMES "hebrew"');
פקודה זו אומרת לשרת שכל מה שתישלחו אליו יהיה מקודד בקידוד hebrew (windows-1255), והשרת ידאג בעצמו לשמור את מה שהוא מקבל בקידוד הנכון (כלומר, במידה והוגדר קידוד UTF-8 לשדות הוא ימיר את מה שהוא מקבל ל UTF-8 וישמור, ובמידה והוא קיבל את המידע באותו ה charset של השדות, הוא לא יבצע המרה וישמור).
כמו כן, פקודה זו תדאג ששרת הMySQL ישלח את המידע ששמור בטבלה מסויימת בקידוד שהוגדר (במקרה זה hebrew), וכך ניתן יהיה להציג אותו כמו שצריך בדף html שהוגדר כ windows-1255 (וגם כאן, אין קשר לקידוד של השדות. אם צריך, השרת ימיר לבדו את תוכן השדות מUTF-8 ל windows-1255).
הערה נוספת: אם האתר שלכם מקודד ב UTF-8, יש לרשום:
קוד:
mysql_query('SET NAMES "utf8"');
ולא
קוד:
mysql_query('SET NAMES "utf-8"');
!
מקווה שעזרתי...
|