En BOM (Byte-order mark) er et Unicode-kodepunkt brukt til å markere om en Unicode-tekst i UTF-16 eller UTF-32 er «big endian» eller «little endian». Kodepunktet har verdien U+FEFF, og ligger først i filen.

Et kodepunkt (for eksempel 0x00 0x52 i UTF-16) vil lagres med den mest signifikante byten først i «big endian», mens bytene vil være parvis byttet om i «little endian». Man kan bruke en BOM til å fortelle mottageren hvilken av disse modellene som brukes. om man bruker dette vil de to første tegnene i filen vil være 0xFE og 0xFF om det har blitt brukt «big endian», og 0xFF fulgt av 0xFE om det har vært brukt «little endian». Dette kodepunktet er tilordnet tegnet «zero-width no-break space», slik at det ikke vises på skjermen om teksteditoren ikke forstår at de første bytene er en BOM.

En BOM (0xEF 0xBB 0xBF) brukes også i UTF-8 av Windows, men ikke Unix/Linux. Den brukes bare for å markere at det er UTF-8 og ikke noen annen tegnkoding. Men det kan føre til problemer med kommandofiler og programspråksfiler som ikke forstår hva en BOM er. UTF-8 kan ellers brukes i slike filer uten å ha en kompilator som støtter UTF-8.