BOM – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
ארן (שיחה | תרומות)
ערך אומץ ע"י הערך יוניקוד
EmausBot (שיחה | תרומות)
מ r2.7.2+) (בוט משנה: fr:Indicateur d'ordre des octets
שורה 21: שורה 21:
[[de:Byte Order Mark]]
[[de:Byte Order Mark]]
[[es:Marca de orden de bytes (BOM)]]
[[es:Marca de orden de bytes (BOM)]]
[[fr:Marque d'ordre des octets]]
[[fr:Indicateur d'ordre des octets]]
[[it:Byte Order Mark]]
[[it:Byte Order Mark]]
[[ja:バイトオーダーマーク]]
[[ja:バイトオーダーマーク]]

גרסה מ־13:07, 25 ביוני 2012

BOM - או byte-order mark (סימן סדר-סיביות) הוא תו היוניקוד שערכו U+FEFF המופיע לרוב בתחילת מסמך או קובץ, ומטרתו לסמן אם התוכן המקודד שבהמשך הוא מסדר big-endian או מסדר little-endian - שתי אפשרויות שונות לקריאת הקידוד במסגרת הקידוד UTF-16. כמו כן, הסימן משמש גם להבחנה בין הקידודים UTF-8, UTF-16 ו-UTF-32.

כאמור, בקידוד UTF-8 אין שום משמעות לסימן, מלבד סימון הטקסט כבעל קידוד זה; סדר הבייטים בפענוח UTF-8 הוא תמיד זהה. [1] באופן עקרוני, חתימה זו אמורה להיות בלתי-נראית, אם כי לעתים מדווחות תקלות (נפוצות) בקריאת התו על ידי דפדפנים שונים באינטרנט (פירוט להלן). מאחר ש-UTF-8 הוא קידוד היוניקוד הנפוץ ברשת, מוטב שלא להוסיף את תו ה-BOM; עם זאת, תוכנות רבות במערכת ההפעלה חלונות (כמו למשל Notepad) מוסיפות את הסימן הזה, לצורך זיהוי עצמי של הקובץ כמקודד בקידוד זה.

תקלות נפוצות בעקבות שימוש ב-BOM

  • בדפדפנים רבים שלא יודעים להתמודד היטב עם UTF-8 נוצרת שורה מיותרת בתחילת הדף המוצג, שמהווה פירוש לא נכון של תו ה-BOM (למשל: [2])
  • בדפדפנים ובעורכי טקסט רבים הסימן מפורש לא נכון ומופיע בצורה הבאה: "", ולעתים בצורות דומות נוספות.
  • הסימן מופיע בראשית הקובץ, ולכן מפריע לעתים קרובות בשליחת "headers", כלומר, מידע מותאם אישית שהשרת, לרוב על ידי שפת תיווך כמו PHP, מנסה לשלוח לדפדפן לפני התוכן (כמו למשל עוגיות)
  • מהדרים של שפות תכנות שונות (כמו javac של Java), אינם יודעים להתייחס לסימן נכונה, ומכשילים הידור של קובץ בשל הימצאות סימן זה בתחילתו.

הפתרון לכל הבעיות האלו, הוא שמירת הקובץ ללא BOM באמצעות עורכי טקסט המאפשרים שמירה בUTF-8 ללא BOM.

קישורים חיצוניים