Als Byte Order Mark (kurz: BOM; deutsch Bytereihenfolge-Markierung) wird das Unicode-Zeichen U+FEFF
(englisch: „zero width no-break space“) am Anfang eines Datenstroms bezeichnet. Es wird vor allem als Kennung zur Definition der Byte-Reihenfolge und Kodierungsform in UCS/Unicode-Zeichenketten, insbesondere Textdateien, verwendet.
Bei einer UTF-8-Kodierung besteht das BOM aus der Bytesequenz EF BB BF
, die in nicht UTF-8-fähigen Texteditoren und Browsern meist als ISO-8859-1-Zeichen 
erscheinen. Bei UTF-8 stellt sich das Problem der Byte-Reihenfolge zwar nicht, doch ist ein BOM am String- oder Dateianfang erlaubt, um die Kodierung zu kennzeichnen. Eine sichere Unterscheidung zwischen UTF-8 und den ISO-8859-Zeichensätzen kann dadurch aber leider nicht gewährleistet werden.
Auch in einem PHP-Interpreter mit Standardeinstellungen führt die Nutzung eines BOM zur Ausgabe von Zeichen an den Browser, so dass ohne „output buffering“ keine HTTP-Header mehr geändert werden können.