新しいフォルダー(1)

メモです。よろしくおねがいします。

[文字コード] BOM

BOMについてのメモ.

BOM

BOM(Byte Order Mark)とは, Unicodeなどの16ビット幅のエンコーディング方式において, バイトオーダーを指定するためにファイルの先頭に挿入される16ビットの値.

UTF-16などのエンコーディング方式では, ビット列の並びとしてリトルエンディアンとビッグエンディアンの両方を許容しているため, 誤ったエンディアンでデータを読み込むと判読できなくなる.

そのため, ファイルの先頭にあるBOMを読み込み, そのデータがどちらのエンディアンで作成されたのかを判別してから残りを読み込む.

BOMは0xFEFFという値で, これを誤ったエンディアンで読み込むと0xFFFEとなる.

また, UTF-8エンコーディングされたデータはエンディアンに関わらず同じデータになるためBOMは必要ないが, データがUTF-8エンコーディングされていることを明示的に表すためにBOMを付加することが許容されている.

UTF-8でBOMがあることによる被害例

UTF-8でBOMがないことによる被害例