Byte order mark

From Wikipedia, the free encyclopedia

Remove ads

Byte order mark (skratka BOM; v slovenčine doslovne „označenie poradia bajtov“) je špecifické použitie Unicode znaku U+FEFF (zero width no-break space – „nedeliteľná medzera nulovej šírky“; v desiatkovej sústave 65279)[1] ako signatúry na začiatku textového súboru resp. toku dát, kde môže indikovať nasledovné:

  • použité poradie bajtov (endianitu) v prípade 16- a 32-bitového kódovania,
  • skutočnosť, že je použitá reprezentácia Unicode,
  • ktoré konkrétne kódovanie znakov Unicode je použité.[2]

V kódovaní UTF-8 je tento znak reprezentovaný trojicou bajtov 0xEF 0xBB 0xBF („UTF-8 signatúra“), v kódovaní UTF-16 big-endian dvojicou bajtov 0xFE 0xFF ako aj v kódovaní UTF-16 little-endian 0xFF 0xFE.[2]

Hlavným dôvodom použitia tohto znaku je rozlíšenie poradia ukladania bajtov big-endian alebo little-endian v UTF-16 a jeho odlíšenie sa od UTF-8. V prípade zámeny poradia bajtov nie je znak U+FFFE platným Unicode znakom, pričom v kódovaní UTF-8 sa bajty 0xFE a 0xFF nesmú vyskytovať. Pre účely rozpoznania poradia ukladania bajtov je použitie BOM v UTF-8 zbytočné a slúži len napríklad aplikáciám operačného systému Microsoft Windows ktoré tento znak používajú na začiatku súboru aby rozlíšili súbory uložené vo formáte UTF-8. V niektorých systémoch (napr. POSIX) sa táto signatúra nepoužíva.

Používanie alebo nepoužívanie BOM môže byť zdrojom problémov. Napríklad Internet Explorer verzie 6 zobrazoval pri súboroch HTML s BOM netlačiteľné znaky na začiatku, teda ešte pred obsahom HTML.

Remove ads

Zoznam najbežnejších BOM sekvencií

Viac informácií BOM (hex), BOM (dec) ...
Remove ads

Referencie

Externé odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads