התאמות למיקומים וקידוד תווים

דפדפנים מעבדים טקסט כיוניקוד בתוכם. אולם, דרך לייצג תווים במונחים של בייטים (קידוד תווים) משמשת להעברת טקסט על גבי הרשת לדפדפן. מפרט ה-HTML ממליץ על שימוש בקידוד UTF-8  (היכול לייצג את כל היוניקוד) ובלי קשר לקידוד שבשימוש מצריך כי בתוכן שברשת יוצהר באיזה קידוד השתמשו.

המאפיין charset  של אלמנט ה-<meta> משמש לציין את קידוד התווים של הדף.

כדי לציין כי הדף משתמש, לדוגמאף בקידוד תווים UTF-8 (על פי ההמלצה), יש פשוט למקם את השורה הבאה בבלוק ה-<head>:

<meta charset="utf-8">

פרטים וקרבי הדפדפן

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

פיירפוקס זקוק לקידוד לעת-מצוא שישמש לתוכן לא-תואם במתכונת הישנה שאינו מצהיר על קידודו. עבור רוב המיקומים, הקידוד לעת-מצוא הוא windows-1252 (הקרוי לעתים קרובות ISO-8859-1), שהוא הקידוד המתקבל כפלט מרוב אפילקציות ה-Windows בשנות ה-1990 וקבוצת על של הקידוד המתקבל כקלט מרוב יישומי היוניקס בשנות ה-1990 כפי שהתפרש באמריקה ובמערב אירופה.  אולם, קיימים מיקומים שבהם פרסום ברשת היה נפוץ כבר בשנות ה-1990 שקידוד windows-1252 לא התאים לשפה המקומית. במיקומים האלה תוכן במתכונת הישנה שאינו מצהיר את קידודו בופן טיפוסי מקודד באמצעות שיטת קידוד ישנה שאינה windows-1252. על מנת לעבוד עם תוכן המופיע במתכונת הישנה, חלק ממיקומי פיירפוקס זקוקים לקידוד לעת-מצוא שאינו windows-1252.

לרוע המזל, משמעות הדבר היא כי פונקציונליות פיירפוקס החשופה לרשת נבדלת במיקום וקשה לקרוא תוכן שנכתב במתכונת הישנה בכל המיקומים עם קידודים שונים לעת-מצוא. כדי להימנע היתקלות בבעיות במיקומים בהם פרסומים ברשת באו אחרי אימוץ UTF-8, מיקומים שאין בהם קידוד במתכונת הישנה שצצה מהפרקטיקות של שנות ה-1990, צריכים להשאיר את הקידוד לשעת-מצוא להיות windows-1252 כדי להקל על קריאת תוכן בעל מיקומים שונים ממיקומים שבהם הקידוד לעת מצוא הוא windows-1252. תוכן מקודד UTF-8 בשפת המקום, הנכתב כחדש, מצופה להצהיר על קידודו, שבמקרה זה הקידוד לעת-מצוא אינו חלק מעיבוד התוכן.

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

מציאת שמות קידוד קאנוניים

הטקסט שלהלן מתייחס לשמות קאנוניים של קידודים. השמות הקאנוניים הם הערכים מימין לשימן השוויון ב-unixcharset.properties.

ציון הקידוד לעת מצוא

מאז פיירפוקס 28, עבר זמנו של קטע זה, משום שההעדפה intl.charset.default אינה קיימת עוד. ההתאמה בין המיקומים לקידודים לעת מצוא  כעת בנויה לתוך  Gecko עצמו.

 הקידודים לעת מצוא מצויינים על ידי ההעדפהintl.charset.default ב- intl.properties. הן אמורות להיות מוגדרות כשמות הקאנוניים של הקידודים על פי המתכונת הישנה  שהכי צפוי שמשתמשי ההתאמות למיקומים   יפגשו בעת גלישה בתכנים במתכונת הישנה ברשת שאינם מצייתים לכללים ואינם מצהירים על קידודם.  יש לשים לב לכך שקידודים לעת מצוא כפי שהם מוגדרים על ידי המשפט הקודם לא בהכרח צריכים להיות מסוגלים לייצג את התווים הדרושים עבור שפת המיקום!

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

על מנת להימנע מבעיות של יוצרי תוכן ברשת היוצרים תוכן מקודד UTF-8 בלי להצהיר כי UTF-8 הוא הקידוד שבשימוש ועל מנת להעלות למקסימום את היכולת של משתמשים לקרוא תוכן בעל מספר מיקומים, אין להגדיר את הקידוד לעת מצוא ל-UTF-8 לכל מיקום מוגדר כחדש. יש לשים לב שפיירפוקס כבר אינו שולח כותרת HTTP בשם Accept-Charset, כך שאין צורך לקחת בחשבון מה יפורסם ב-Accept-Charset כאשר מגדירים קידוד לעת מצוא.

למיקומים בהם הקידוד לעת מצוא הוא כעת  ISO-8859-1, הקידוד חייב להשתנות ל-windows-1252. ISO-8859-1 is decoded באותה דרך בדיוק כמו windows-1252, אך פיירפוקס עובר לטפל ב- windows-1252 כמו בתווית המועדפת עבור קידוד זה בהתאם ל- Encoding Standard.

עבור מיקומים שבהם ל- Internet Explorer נתח שוק יותר גדול מזה של  Firefox, הקידוד לעת מצוא צריך באופן טיפוסי להיות מוגדר לאותו ערך כמו ב-Internet Explorer. .ניתן לראות את הקידוד לעת מצוא שיש לדפדפן מסויים על ידי טעינת  test page. (יש לדאוג להשתמש בהתקנת דפדפן שנותרה לה הגדרות ברירת מחדל כשחוקרים זאת!)

עבור מיקומים שבהם ל- Firefox מתח שוק גדול יותר מזה של Internet Explorer, סביר להניח כי הטוב ביותר הוא לא לשנות את הקידוד לעת מצוא  אפילו אם אינו תואם את ההדרכה שניתנה לעיל . (לדוגמא, קידוד פיירפוקס עבור המיקומים  הפולני, ההונגרי והצ'כי  סביר שיהיה צריך להמשיך להיות   ISO-8859-2 למרות של-IE הגדרת מיקום לעת-מצוא שונה.)

כאשר בספק יש להשתמש ב-windows-1252 כקידוד לעת-מצוא.

ציון אופן הזיהוי ההתחלתי

אופן הזיהוי ההתחלתי מצויין בהעדפה  intl.charset.detector ב- intl.properties. הגדרה זו חייבת לישאר ריקה לכל המיקומים  שאינם הרוסי, האוקראיני והיפני.  . באף מצב אין לציין את הגלאי "universal". הוא אינו אוניברסלי למרות שמו!

חריגים עבור שפות מיעוט

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

הפיכת מספר קידודים לניתנים לבחירה בקלות מתוך תפריט קידודי תווים

ההעדפה intl.charsetmenu.browser.static ב- intl.properties הופכת מספר קידודי תווים לזמינים בקלות רבה יותר בתפריט קידודי תווים בדפדפן. על הערך להיות רשימה מופרדת ע"י פסיקים של שמות קידודים קאנוניים.  על הרשימה לכלול לפחות את הקידודים לעת מצוא, את windows-1252 ואת UTF-8. למיקומים שבהם יש יותר מקידוד אחד מהדור הישן, על כל הקידודים האלה להיכלל. לדוגמא, הקידוד לעת מצוא עבור יפני הוא  Shift_JIS, אבל יש עוד קידודים מהדור הישן  : ISO-2022-JP ו- EUC-JP. לכן, יהיה הגיוני אם הרשימה תהיה Shift_JIS, EUC-JP, ISO-2022-JP, windows-1252, UTF-8.