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í
Remove ads
Referencie
Externé odkazy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads