31-12-2010, 10:54
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
1)
קודם אני מפנה אותך לאשכול שמסביר איפה להגדיר בכל המערכת את הגדרת הקידוד האחידה:
http://www.fresh.co.il/vBulletin/sh...ad.php?t=458692
ב-" העמוד של htaccess" אני מניח שאתה מתכוון לקובץ "htaccess.".
לפי מה שאתה אומר,
אם המידע נשלח מקודד ב-UTF-8,
ואתה משתמש ב-mod_rewrite כדי לטפל בבקשת ה-HTTP הזו שמקודדת ב-UTF-8,
והשרת מצליח להעביר את הבקשה לטיפול של PHP,
סימן ששמרת את הקובץ htaccess בקידוד utf-8 ולא windows-1255.
ראה כאן על הנושא.
פתרון הבעיה שאתה מציין קשה לזיהוי כי חסרים המון פרטים,
אני בדבר כזה צריך לבדוק ולהתנסות בהרבה דברים,
וצריך לדעת מה בדיוק מתבצע.
האם אתה שולח את הבקשה בעזרת ajax ?
2)
חסרים פרטים, אבל אני משער שאולי לא הורדת את ה-BOM שבתחילת אחד המסמכים של php או html.
ה-BOM במצב כזה נפלט ראשון לדפדפן וגורם לרווח קטן למעלה (בהתאם לגודל פונט ברירת המחדל של הדפדפן, בדר"כ).
כדי לעבוד ב-UTF-8 תצטרך להמיר את כל הטקסט של התסריט שהמערכת שלך בנויה עליה,
וגם לשנות את קידוד מסד הנתונים.
כדי לעשות את זה, פשוט תמיר את הטקסט של קבצי התסריט וה-HTML ל-utf-8 בעזרת איזו תוכנה שתרצה (בלינוקס יש את iconv. תוכל גם להיעזר בפונקציית iconv של PHP ולכתוב תסריט php שיעשה את זה).
אותו דבר לגבי מסד הנתונים: תייצא אותו כגיבוי לוגי לקובץ \ מספר קבצים, ותבצע המרה של הטקסט בקבצים האלה מ-windows-1255 ל-utf-8.
אחרי שינוי הקידוד, תעלה את הגיבוי למסד (לאחר מחיקת המידע שקיים במסד). הדבר הזה טוב באופן כללי גם בשביל סידור אופטימאלי של המידע בדיסק (כך שהשאילתות שלך כנראה יתבצעו מהר יותר).
לאחר מכן תשנה את הגדרות הקידוד בכל המערכת שלך (כפי שכתוב כאן).
|