הרשם | שאלות ותשובות | רשימת חברים | לוח שנה | הודעות מהיום | חיפוש |
|
|
כלים לאשכול | תצורת הצגה |
24-06-07, 02:38 | # 1 |
מתאורר / יצא בחוץ
|
בעיות עם utf8? הסברים ותיקונים כאן!
שלום
ראיתי שלהמון אנשים יש בעיה עם utf, במיוחד עם מסד, כולל אותי, אז החלטתי לשבת על זה ולראות מה הפתרון. בעיקרון מה שצריך לעשות זה 3 דברים עיקריים: 1) להמיר את קבצי הטקסט ל utf8 without BOM, אני ממליץ על notepad2. 2) לשים תג meta בדפי ה HTML שיגיד לדפדפן שזהו קובץ UTF8. 3) להמיר את כל המסד ל UTF8. נעבור שלב שלב: 1) יש 2 סוגים של UTF8:
מהו בעצם ה BOM הזה ולמה הוא גורם? ה BOM הוא ראשי תיבות של Bytes order mark, שהוא בפירוש לעברית "חותמת סדר ביטים", לא נכנס לזה יותר מדי, אבל אפשר להגיד שזה בעקרון מכניס לקובץ טקסט את הסדר ביטים בקובץ. הדבר הזה גורם להוצאת פלט, וכך בעקיפין לבעיות עם headers (לדוגמא header already sent ב PHP). notepad הרגיל שומר קבצי UTF עם BOM, ואין אפשרות ללא BOM. בשביל שנוכל להמיר את הקובץ טקסט ללא BOM נצטרך תוכנת עריכת טקסט יותר מתקדמת, כאן אני ממליץ על notepad2. המרה ל UTF without BOM ב notepad2:
הורדה ל notepad2: http://www.flos-freeware.ch/zip/notepad2.zip 2) זהו החלק הקל ביותר, להוסיף את הקוד הבא בין תגי head וגמרנו: HTML קוד:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
לכו ל phpmyadmin ואז תבחרו בטבלה שלכם ולחצו על SQL בתפריט למעלה. קחו את השאילתא הבאה ושנו את USERNAME ל user_db, כאשר user הוא השם משתמש שלכם לאכסון, ו db הוא שם המשתמש למסד. קוד:
ALTER DATABASE `USRENAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; קוד:
ALTER DATABASE `losnir_shell` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; קחו את השאילתא הבאה, ושכפלו אותה כמספר הטבלאות שלכם: קוד:
ALTER TABLE `MYTBL` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; לדוגמא, נגיד שיש לי 3 טבלאות: user, admin ו page, לפיכך, השאילתא המלאה שלי תיהיה כך: קוד:
ALTER DATABASE `losnir_shell` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE `admin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE `user` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE `page` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; אוקיי כאן סיימנו הכל, אבל נשאר עוד משהו! מה שעשינו כאן בעצם, זה להמיר את כל הטבלה ל UTF8, אבל הבעיה היא שכל התוכן שכבר קיים לא הופך ל UTF8. ז"א, שנצטרך לאפס את כל הטבלאות שלנו ולהתחיל הכל מהתחלה. אז לפני שאתם מתחילים לפתח מערכת כלשהי, תחשבו טוב טוב באיזה קידוד אתם הולכים להשתמש, כי הדרך חזרה תיהיה מפרכת וארוכה. זהו כלל ברזל! * אני כתבתי את המדריך, ואין להעתיקו ו/או לפרסמו בכל מקום אחר ללא אישור מצידי בתוספת קרדיט. יום טוב, ניר אזואלוס. Last edited by LosNir; 24-06-07 at 02:42.. |
24-06-07, 06:06 | # 2 |
משתמש - היכל התהילה
|
תודה.
רק בעיה, אין אצלי בתוך תפריט File את ה encoding. |
24-06-07, 06:41 | # 4 |
חבר וותיק
|
mlnn מופיע לך Format בתפריט?
אחלה מדריך ניר . |
24-06-07, 08:12 | # 5 |
משתמש - היכל התהילה
|
מדריך מצויין תודה!
אבל יש לי בעיה מוזרה. כשגיביתי את הדאטה בייס בקובץ *.sql אני רואה עברית ממש עברית. ושאני מעלה אותו ל phpmyadmin אני מקבל סימני שאלה... יש דרך לתקן את זה? תודה!
__________________
פרוייקטים: חדשות, קייטרינג, מילים לשירים, זר מתוק בניית אתרים - Wise Group Media LTD
|
24-06-07, 10:46 | # 6 |
הוסטסניון
|
סחטיין על המדריך
פעם ראשונה הסתבכתי נורא עם כל הקטע הזה. |
24-06-07, 13:02 | # 7 | |
מתאורר / יצא בחוץ
|
ציטוט:
עכשיו תריץ את השאילתא המלאה שהסברתי במדריך (בהתאם לטבלאות שלך) ותעלה את הגיבוי. |
|
24-06-07, 13:54 | # 8 |
אחראי פורום
|
לפי דעתי היה נחמד אם הייתה מוסיף "יתרונות וחסרונות ב-UTF".
תודה רבה D: |
24-06-07, 14:21 | # 9 |
תודה על תרומתך.
|
המדריך המלא ? האמת היא שציפיתי ליותר,
כמו לדוגמא עבודה עם פונקציות שיש להם בעיה עם UTF8 כמו SUBSTR ו STRLEN ודומיהם ללא שימוש ב MBSTRING
__________________
|
24-06-07, 14:36 | # 10 |
חבר וותיק
|
אני מכיר את זה, יש לי בזה הרבה שימוש, תודה רבה בכל אופן
__________________
|
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|