Aller au contenu
uencoder

BOM

Le BOM (marque d'ordre des octets) est le caractère Unicode U+FEFF, placé au début d'un flux de texte pour indiquer la forme d'encodage et l'ordre des octets.

Objectif

Il signale l'ordre des octets gros-boutiste ou petit-boutiste en UTF-16/UTF-32 et sert de signature d'encodage en UTF-8 (même si UTF-8 n'a pas d'ambiguïté d'ordre des octets).

Mécanisme

U+FEFF est rendu en octets selon la forme d'encodage : EF BB BF en UTF-8, FF FE en UTF-16LE et FE FF en UTF-16BE. Un décodeur lit les premiers octets et les compare aux BOM connus pour déterminer l'encodage. U+FEFF est lui-même un espace insécable de largeur nulle, d'où son double rôle de signature.

Cas d’usage

  • Détection automatique de l'encodage des fichiers texte
  • Échange de texte entre plateformes
  • Marqueurs d'encodage pour fichiers CSV/TSV
  • Encodage des fichiers d'exportation de bases de données

Exemples

  • entrée
    UTF-8 BOM
    Output
    EF BB BF

    The first three bytes of a file

Erreurs courantes

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

Termes associés

Outils associés

References