אחד האתגרים הגדולים העומדים בפני מתכנת הם קידודים ובמיוחד שמדובר בשפה העברית. האתגר העמד ברשותי הוא להמיר מסד נתונים ישן עם הרבה נתונים אל UTF-8
. בזמנו, לפני כ-10 שנים, לא היה תקן אחיד והיה נהוג להשתמש בקידודים שונים ביניהם windows-1255
ו-latin1
. ברוב המקרים כברירת מחדל מסד הנתונים היה מוגדר כ-latin1
בעוד האתר היה מקודד כ-windows-1255
, ואף שהאתר הציג את התכנים בצורה טובה לכאורה, במסד הנתונים התכנים הוצגו כג'יבריש ובקידוד לא תקין.
דמיינו עד כמה המצב מורכב כאשר תכנים ממשיכים להתווסף במשך שנים בדרך זו. גם אם מבצעים שינוי של הקידוד הנוכחי בטבלאות MySQL דרך phpMyAdmin הדבר ישפיע רק על התוכן החדש שיוזן למסד ולא לתוכן הקיים.
כיום UTF-8
מהווה תקן קידוד בינלאומי ופותר את הבעיה אך מה לגבי התכנים הישנים? יש צורך להמיר אותם וכאן מתחיל האתגר. המסד הנתונים היה של מערכת פורומים ישנה שכבר לא נמצאת בשימוש כך שהיה צורך במספר המרות. תחילה, היה חשוב לי לתקן את הג'יבריש במסד הנתונים וכל הניסיונות לעשות זאת כשלו. ניסיתי לשאול מומחים בחו"ל המתמחים במסדי נתונים והמרות אך הם גם לא הצליחו למצוא פתרון אך לפני ייאוש טוטאלי מההליך, ניסיונות רבים של ניסוי וטעייה הניבו הצלחה.
עבודה קשה והתמדה מובילים להצלחה
לבסוף, הצלחתי לבנות סקריפט ב-PHP שממיר את האותיות הלטיניות השגויות לאותיות תקינות בעברית, תקנתי את מבנה מסד הנתונים בעורך טקסט באמצעות "חפש ומצא" ולבסוף המרתי את הטבלאות אל המערכת החדשה. אמנם הדבר גזל ממני שעות רבות אך אני שמח מאוד שהצלחתי לתקן את מסד הנתונים ולהמירו לקידוד התקין.
כתיבת תגובה