Zum Inhalt springen
uencoder

BOM

Die BOM (Byte-Order-Mark) ist das Unicode-Zeichen U+FEFF, das an den Anfang eines Textstroms gesetzt wird, um Kodierungsform und Byte-Reihenfolge anzuzeigen.

Zweck

Zeigt die Big- oder Little-Endian-Byte-Reihenfolge in UTF-16/UTF-32 an und dient in UTF-8 als Kodierungssignatur (obwohl UTF-8 keine Byte-Reihenfolge-Ambiguität hat).

Mechanismus

U+FEFF wird je nach Kodierungsform in Bytes übersetzt: EF BB BF in UTF-8, FF FE in UTF-16LE und FE FF in UTF-16BE. Ein Decoder liest die ersten Bytes und gleicht sie mit bekannten BOMs ab, um die Kodierung zu bestimmen. U+FEFF selbst ist ein breitenloses geschütztes Leerzeichen, weshalb es zusätzlich als Signatur dienen kann.

Anwendungsfälle

  • Automatische Kodierungserkennung von Textdateien
  • Plattformübergreifender Textaustausch
  • Kodierungsmarker für CSV/TSV-Dateien
  • Kodierung von Datenbank-Exportdateien

Beispiele

  • Eingabe
    UTF-8 BOM
    Output
    EF BB BF

    The first three bytes of a file

Häufige Fehler

A UTF-8 BOM being rejected by a JSON parser (RFC 8259 forbids it)
Do not use a BOM in JSON files

Verwandte Begriffe

Verwandte Tools

References