29-08-2005, 11:15
|
|
|
חבר מתאריך: 20.02.03
הודעות: 2,396
|
|
כמה מילים על צ'ארסטים וקוליישנים
character set - (או בתרגום חופשי - קבוצת תוים) הינה קבוצה של סמלים וקידודים. collation - (מערכת השוואות. תרגום מוצלח יותר? מישהו?) הינם החוקים המוגדרים להשוואה עבור קבוצת התווים המדוברת. החוקים מתארים השוואות בין התוים השונים בקבוצה, באופן כזה שכאשר יש צורך לסדר את הנתונים על פי סדר מסויים, קיימים חוקים ברורים בנוגע לסידור התווים - מה יבוא ראשון, מה יבוא שני, וכו'.
הגדרות הצ'ארסט והקוליישן התווספו בגירסה 4.1 של mysql. קיימות ארבע דרגות של הגדרות עבור הצ'ארסט והקוליישן - שרת, דטאבייס, טבלה, וחיבור.
לפותח האשכול - כיוון שיש לך אפשרות לשחק עם ההגדרות הללו לפי חיבור, אתה יכול פשוט להריץ שאילתא לפני שאתה מריץ את ה mysqldump ולשנות את ה charset ואת ה collate עבור החיבור הספציפי. לדוגמא:
קוד:
SET character_set_connection = utf8;
שים לב שבדוגמא מדובר על החיבור עצמו (כלומר, הנתונים המועברים בין הלקוח לשרת) ולא על הנתונים המוחזרים מהשרת אל הלקוח. הבעיה אצלך היא שהנתונים הנמצאים בדטאבייס (להערכתי) אינם מקודדים, ולכן במהלך הוצאתם מהדטאבייס, השרת מקודד אותם על פי הגדרות ברירת המחדל שלו.
על מנת להוציא את הנתונים ללא קידוד, תשתמש ב
קוד:
SET character_set_results=NULL;
לפני ביצוע ה mysql dump. נישמח לשמוע האם זה עזר, ובמידה ולא - תמיד אפשר להמשיך לנסות
בברכה, דקל
_____________________________________
"מתכנת זה אדם שפותר בעיה שעל קיומה לא ידעת, בדרך שאינך מבין"
|