
12-07-2009, 06:24
|
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,778
|
|
כמו שיכולת להבין, רוב המערכות שלך פולטות utf-8 (הידד!) ורק אחת מהן, פולטת windows-1255. הפתרון הוא לגרום גם ליחידה ששונה, לפלוט utf-8. יש מספר דרכים לעשות את זה, מתוחכמות יותר ופחות, ודורשות יותר עיבוד או פחות. הכי טריוויאלי זה לפתוח את כל הקבצים שהם חלק מהמערכת, במקור, בקידוד windows-1255 ואז לשמור אותם מחדש בתור utf-8, וגם לשנות ב meta tags ובכותרי Content-type (אם יש) ל utf-8. הדרך השנייה, שאינה דורשת שמירה מחדש, היא להשתמש ב output buffering לפני תחילת הקוד, ובסופו, לקחת את כל מה שנלכד ב buffer, ולהמיר אותו עם הפוקנציה iconv ל utf-8. שיטה זו בזבזנית הרבה יותר, כי היא דורשת תרגום בכל ריצה וריצה של הקובץ. מצד שני, ייתכן שלא תהיה לך ברירה, בייחוד אם כבר צברת נתונים בקידוד הישן, או אם המערכת שלך באופן קבוע צוברת נתונים ממקור שמוציא אותם כ windows-1255 ולא בא לך לבצע שינוי בקוד שיעשה המרה של הנתונים האלה ל utf-8 כשהם מתקבלים...
כך או כך, כל נסיון לפתרון אחר שישאיר את windows-1255, הוא טעות, לדעתי. זו טעות שאתה תצטער עליה 
|