הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איזה קידוד הכי מומלץ למסד? (https://hosts.co.il/forums/showthread.php?t=82708)

HOLD 20-05-10 23:35

איזה קידוד הכי מומלץ למסד?
 
אני כרגע עושה שינויים למסד שלי (מערכת שעוד לא פעילה..),
רציתי לשנות את הקידוד שלו, איך אני עושה את זה הכי חלק?
הקידוד כרגע : latin1_swedish_ci

למה כדאי לי לשנות את הקידוד?
רוב הערכים שנכנסים הם בעברית, אבל חלק לא קטן הוא באנגלית.
איך ממירים מסד נתונים?

תודה.

Shay Ben Moshe 20-05-10 23:47

אני ממליץ לך לעבוד עם utf8, אני משתמש בutf8_general_ci.
בשביל לשנות DATABASE אתה מריץ:
ALTER DATABASE `database_name` CHARACTER SET utf8 COLLATE utf8_general_ci
בשביל לשנות טבלה בודדת:
ALTER TABLE `table_name` COLLATE='utf8_general_ci'

בהצלחה

HOLD 21-05-10 00:38

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 764816)
אני ממליץ לך לעבוד עם utf8, אני משתמש בutf8_general_ci.
בשביל לשנות DATABASE אתה מריץ:
ALTER DATABASE `database_name` CHARACTER SET utf8 COLLATE utf8_general_ci
בשביל לשנות טבלה בודדת:
ALTER TABLE `table_name` COLLATE='utf8_general_ci'

בהצלחה

זה לא עבד,
גיביתי את הטבלאות , מחקתי את המסד ,יצרתי מחדש את המסד עם הקידוד החדש,
וכשייבאתי את הטבלאות חזרה מהגיבוי בחרת בקידוד הישן כדי שזה יעביר לחדש.

עכשיו עוד שאלה, למה דווקא utf8_general_ci?
הוא מותאם למשהו? יש לו יתרון על קידודים אחרים?

תודה.

Shay Ben Moshe 21-05-10 10:11

דבר ראשון הוא UTF8 שזה כלל שלקחתי לעצמי. הכי נוח עם UTF8.
יש הרבה סוגים של utf8ים ואני לא יודע להסביר את ההבדלים ביניהם.
מה שכן זה general לדוגמה, לא כמו הקודם שלך שהוא שוודית.
בנוסף זה הוא ci שמייצג Case Insensitive משמע שwhere לדוגמה לא יבדיל בין hello לHelLo.

RS324 21-05-10 13:44

אתה צריך לעשות 2 טבלאות אחת עם הקידוד הישן ואחת עם הקידוד החדש ולהמיר באמצעות ה PHP את הקידוד של התוכן ל UTF8 ולהכניס לטבלה החדשה
שי צודק , utf8_general_ci הוא באמת (מהניסיון שלי) הקידוד שעושה הכי פחות בעיות , הוא הקידוד היחידי שאני משתמש

HOLD 21-05-10 16:09

כשאני מוסיף ערכים למסד של האתר , זה מראה לי אותם ככה: "ðñéåï" (דרך ה-phpMyAdmin)
אבל באתר הם מוצגים נהדר.

זה אמור להיות ככה? כי משום מה במסד של phpBB שאני פותח עם phpmyadmin זה מציג בעברית רגילה.

שאני שולף ערכים בעברית מהמסד של phpBB אני מקבל סימני שאלה.

יש למישהו מושג?

SniR-S 21-05-10 18:16

תגדיר לך באיזה קובץ לדוגמה config.php שנשלף בכל עמוד
או לחילופין, בקובץ שבו מורצות שאילתות את ההגדרה הבאה:
PHP קוד:

mysql_query("SET NAMES  'utf8'"); 


HOLD 21-05-10 18:27

ציטוט:

נכתב במקור על ידי RS324 (פרסם 764844)
אתה צריך לעשות 2 טבלאות אחת עם הקידוד הישן ואחת עם הקידוד החדש ולהמיר באמצעות ה PHP את הקידוד של התוכן ל UTF8 ולהכניס לטבלה החדשה
שי צודק , utf8_general_ci הוא באמת (מהניסיון שלי) הקידוד שעושה הכי פחות בעיות , הוא הקידוד היחידי שאני משתמש

אתה יכול בבקשה לפרט יותר?
עם איזו פונקציה אני ממיר?

בניה 22-05-10 07:24

ציטוט:

נכתב במקור על ידי RS324 (פרסם 764844)
אתה צריך לעשות 2 טבלאות אחת עם הקידוד הישן ואחת עם הקידוד החדש ולהמיר באמצעות ה PHP את הקידוד של התוכן ל UTF8 ולהכניס לטבלה החדשה
שי צודק , utf8_general_ci הוא באמת (מהניסיון שלי) הקידוד שעושה הכי פחות בעיות , הוא הקידוד היחידי שאני משתמש

לא עדיף utf8_unicode_ci?

SniR-S 22-05-10 07:36

אני אישית משתמש ב utf8_bin..


כל הזמנים הם GMT +2. הזמן כעת הוא 17:37.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ