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

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

MasterNetwork 10-03-12 14:27

PHP| בעיה בקידוד mysql
 
המרתי את הקבצים באתר שלי לUTF-8.
עכשיו אני מנסה לקרוא מהבסיס נתונים והוא מציג לי סימני שאלה ויהלומים .
כשהקידוד באתר היה windows-1255 הכל עבד חלק.
הבעיה היא לא בקידוד של האתר כי אם כבר אז גם בטקסט שהוא לא מהבסיס נתונים היה מציג בעיות.

בכל מקרה, ניסיתי לעשות את זה אחרי ההתחברות לבסיס נתונים זה מחליף לי את הסימני שאלה לצורות אחרות אבל לא עוזר בבעיה.
mysql_query("SET NAMES 'hebrew' ");
utf8
latin1

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

הקישור לאתר נמצא בחתימה.

Itay 10-03-12 17:09

למה אין לך אפשרות להכנס ל-phpMyAdmin ולדעת את הקידוד? רוב הסיכויים שזאת הבעיה

בכל מקרה - תנסה לשלוף את המידע ולהמיר אותו ל-utf8 עם mb_convert_encoding מ-iso-8859 ל-utf8
אם זה עובד כמו שצריך - תיצור העתק של הדאטהבייס, עם קידוד utf8_unicode_ci ואז תכניס את כל המידע מחדש אחרי שאתה ממיר אותו עם ה-mb_convert

MasterNetwork 10-03-12 18:12

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

זה הפונקציה שעשיתי חייב להיות דרך שכל מילה שמגיעה מהבסיס נתונים עוברת דרך הפונקציה.

קוד:

function jibrish($text){
$from="à:á:â:ã:ä:å:æ:ç:è:é:ë:ê:ì:î:í:ð:ï:ñ:ò:ô:ó:ö:õ:÷:ø:ù:ú";
$to="א:ב:ג:ד:ה:ו:ז:ח:ט:י:כ:ך:ל:מ:ם:נ:ן:ס:ע:פ:ף:צ:ץ:ק:ר:ש:ת";

$from=explode(":", $from);
$to=explode(":", $to);
for ($i=0; ;$i++){
if ($to[$i]==""){ break; }
$text=str_replace($from[$i], $to[$i], $text);
}
return $text;
}

מוזמנים להשתמש.

Itay 10-03-12 18:44

דבר ראשון - אתה יכול לתת ל-str_replace מערכים - זה יחסוך לך את הלולאה

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

MasterNetwork 10-03-12 18:58

חחח מה שמוצג פה בקוד זה לא הקידוד שלי זה נהרס כשהעתקתי את זה לפה.
אתה יכול להכנס לאתר בחתימה ותראה את הקידוד.
דרך הקובץ גיבוי של כל האתר הגעתי לקובץ sql וכתוב שהקידוד שם הוא כבר utf8 .

MasterNetwork 10-03-12 19:41

טוב תודה על העזרה בכל מקרה, אפשר לנעול.
החזרתי לwindows-1255 וגם את הקידוד של הקבצים עצמם הייתי צריך לחזור אחד אחד אחורה באסה לא נורא.

xoox 10-03-12 21:43

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 837750)
טוב תודה על העזרה בכל מקרה, אפשר לנעול.
החזרתי לwindows-1255 וגם את הקידוד של הקבצים עצמם הייתי צריך לחזור אחד אחד אחורה באסה לא נורא.

גבר.... למה להתייאש?
אני יעזור לך לסדר את זה...

MasterNetwork 11-03-12 02:03

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


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

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