Byte order mark

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

BOM (Byte order mark, česky přibližně „označení pořadí bajtů“) je znak hexadecimálně zapsaný jako FEFF (v desítkové soustavě 65279).

V kódování UTF-8 je tento znak reprezentován trojicí bajtů 0xEF 0xBB 0xBF („UTF-8 signatura“), v kódování UTF-16 big-endian dvojicí bajtů 0xFE 0xFF a v UTF-16 little-endian 0xFF 0xFE. Grafický význam znaku je „nedělitelná mezera nulové šířky“ (zero-width no-break space), je tak podobný znaku U+2060 (word joiner).

Hlavním důvodem užití tohoto znaku je rozlišení pořadí ukládání bajtů big-endian nebo little-endian v UTF-16 a odlišení samotného UTF-16 od UTF-8. V případě záměny pořadí bajtů není znak U+FFFE platný Unicode znak, navíc v kódování UTF-8 se bajty 0xFE a 0xFF nesmí vyskytovat. +more Užití BOM v UTF-8 je pro účel rozpoznání pořadí ukládání bajtů nadbytečné, nicméně mnohé aplikace operačního systému Microsoft Windows používají tento znak na začátku souboru pro rozlišení souborů uložených ve formátu UTF-8. V některých systémech ( např. POSIX) není tato signatura používána.

Používání nebo nepoužívání BOM může být zdrojem problémů. Například Internet Explorer verze 6 u souborů HTML s BOM na začátku zobrazoval netisknutelné znaky před samotným obsahem HTML.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top