![]() |
# 1 |
חבר בקהילה
|
בעיית קידוד utf-8 עברית ב-mysql
![]() אני כותב, עורך, מוחק נתונים מהמסד דרך קבצי php, כל הקבצים מקודדים utf-8 without bom כל המסדים utf-8 general ci עכשיו איפה שיש את ה- $times זה כאשר אני מוסיף נתונים, והם מופיעים אצלי בתור ×�×�×�ש×�×� כל השאר שרואים ג'יבריש, זה אחרי שאני מעדכן, והם מופיעים בתור עברית תקנית בעמוד.... מה אפשר לעשות בקשר לזה? מישהו נתקל בזה בעבר? * כמובן שיש גם meta שמגדיר utf-8 ב-header שכלול בכל העמודים... Last edited by Jenya; 04-05-12 at 14:06.. |
![]() |
![]() |
# 2 |
חבר מתקדם
|
תריץ לפני כל השאילתות שלך את השאילתה הזאת:
קוד:
SET NAMES utf8;
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
![]() |
![]() |
# 3 | |
חבר בקהילה
|
ציטוט:
![]() ככה זה נראה בדיוק: HTML קוד:
if(!(@mysql_connect("$host","$user","$pass") && @mysql_select_db("$tablename"))) { mysql_query("SET CHARACTER SET 'utf8'"); |
|
![]() |
![]() |
# 4 | |
חבר בקהילה
|
ציטוט:
אם אתה כותב את זה ועדיין לא עובד לך, תנסה למחוק את הטבלה ולהכניס לשם כמה פעמים, גם לי זה קורה ואחרי שאני מכניס כמה פעם תוכן, זה מסתדר. |
|
![]() |
![]() |
# 5 | |
חבר בקהילה
|
ציטוט:
מחקתי את הטבלה והכנסתי כמה פעמים... לא עוזר :/ אני כבר משתגע |
|
![]() |
![]() |
# 6 |
עסק רשום [?]
|
כדי שמסד הנתונים יעבוד באופן מלא תחת utf8_general_ci, להלן מס' דברים שיש לבצע ואפשר גם דרך ה- phpMyAdmin -
1. בלשונית של ה- host אתה מגדיר את ה- MySQL connection collation כ- utf8_general_ci. 2. בלשונית של ה- database הרלוונטי, אתה נכנס ל- Operations ומגדיר את ה- Collation כ- utf8_general_ci. 3. בלשונית של ה- table הרלוונטית, אתה נכנס ל- Operations ומגדיר את ה- Collation כ- utf8_general_ci. 4. בלשונית של ה- field הרלוונטי (אתה מגיע לשם דרך ה- Structure של הטבלה), אתה מגדיר את ה- Collation כ- utf8_general_ci. 5. בהתחברות למסד הנתונים, אתה שולח בתחילת החיבור את השאילתה SET NAME 'utf8'. מבחינת מסד הנתונים, כל זה אמור להספיק. מעבר לכך - יש לוודא כמובן שכל הקבצים מקודדים כ- utf8 ושאתה מגדיר לדפדפן שהקידוד הוא utf8 (ציינת שעשית את זה, אז זה אמור להיות בסדר). |
![]() |
![]() |
# 7 | |
חבר בקהילה
|
ציטוט:
לגבי סעיף 1, איך אני מגיע ללשונית host? בדקתי, בכל מקום שאפשר להגדיר קידוד במסד מוגדר utf8_general_ci, הדפים מקודדים utf-8 without BOM ויש ב-header שורת meta שמגדירה לדפדפן על הקידוד. בכל מקרה, כשאני מוסיף הוא מראה לי עדיין משהו בסגנון הזה: קותי סבג (זה מה שמופיע במסד, ומופיע באתר כ- ×§×�ת×� ס×�×�) לעומת זאת, כשאני עורך את אותה רשומה, מופיע לי משהו כזה: לייק (זה מה שמופיע במסד, באתר מופיע עברית תקנית) אני ממש אובד עצות, אני לא יודע מה לעשות ![]() תיקון: עליתי על הבעיה, אחת הפונקציות השתמשה ב-htmlspecialchars, ומפה נבעה הבעיה. תיקנתי את זה ע"י: htmlspecialchars($string, ENT_QUOTES, 'UTF-8') תודה על העזרה! Last edited by Jenya; 05-05-12 at 20:07.. |
|
![]() |
![]() |
# 8 |
עסק רשום [?]
|
ה- host זאת הלשונית הראשית.
בהמשך לבעיה - נדמה שאתה לא מגדיר כמו שצריך את הקידוד של הדפים או לחילופין מבצע פעולה כלשהי על הטקסט שגורמת לכך. האם אתה מכניס את הנתונים (או מעביר אותם) באמצעות AJAX? האם אתה מבצע include לדפים מסויימים שייתכן ואינם מקודדים כ- utf8? יש הרבה דברים שיכולים לגרום לזה, קצת קשה לתת תשובה מדוייקת בצורה הזאת. נסה ליצור דף חדש, להתחבר דרכו למסד הנתונים, להגדיר משתנה כלשהו ולהכניס את הערך שלו למסד. האם הוא נכנס בצורה תקינה? |
![]() |
![]() |
# 9 | |
חבר מתקדם
|
ציטוט:
__________________
הורדת שירים מיוטיוב, הורדת שירים, שירים להורדה, שירים להורדה מיוטיוב, העלאת תמונות |
|
![]() |
![]() |
# 10 | |
עסק רשום [?]
|
ציטוט:
אם אתה יודע שזאת טעות, למה להשאיר את זה ולא לסדר את זה? תגדיר את זה כמו שצריך מההתחלה ולא תיתקל בבעיות כאלו. חכמים ממני אמרו: "פיקח הוא מי שנחלץ מצרה שחכם נמנע ממנה מלכתחילה", יש היגיון בדבר. Last edited by אדיר; 05-05-12 at 21:36.. |
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|