Byte order mark
Author
Albert FloresBOM (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.