コンテンツへスキップ
uencoder

Byte Order Mark

バイトオーダーマーク (BOM) とは、Unicode テキストの先頭に置かれ、符号化形式とバイト順を示す U+FEFF の文字である。

目的

デコーダが外部メタデータなしにテキストの符号化方式とバイト順を自動検出できるようにする。

メカニズム

符号化方式ごとに BOM のバイト列は異なり、UTF-8 は EF BB BF、UTF-16LE は FF FE、UTF-16BE は FE FF、UTF-32LE は FF FE 00 00、UTF-32BE は 00 00 FE FF である。デコーダは先頭 2〜4 バイトを読んで照合する。

ユースケース

  • テキストエディタでのエンコード判定
  • システム間でのテキストファイル交換
  • データベース取り込み時のエンコード識別
  • Excel での CSV ファイル処理

例

  • 入力
    UTF-16LE file
    Output
    FF FE ...

    Leading bytes FF FE indicate little-endian UTF-16

よくあるエラー

Mistaking a UTF-8 BOM for data content
Detect and strip the BOM when reading

関連用語

関連ツール

References