BOM とは

Byte Order Mark (ボム)

Unicode で書かれたテキストファイルの先頭に付ける目印データのこと

UTF-8 や UTF-16 で書かれたテキストファイルにおいて、
その中身の一番最初にくっついているのが BOM。
BOM は付いてなかったり、ついてたりする。

 

何故 BOM をつけるのか。

1) Unicode強く主張するため

 

2) エディアン指定のため。
UTF-16 などの 16 ビット幅のエンコーディング方式において、
どのような並び順 ( エディアン ) でかいているのか、を示す為。

Unicode で 2 バイトのデータを書く時は、
1 バイト目2 バイト目」と
2 バイト目1 バイト目」の順で書くやり方がある。
どの順でデータを書いているのか、を示す情報が BOM には書いてある。
ex)
「主語→述語→目的語」の順か、「主語→目的語→述語」 の順で書くか。
順序が違っても、何を言いたいかは伝わる。

 

エディアン
マルチバイトで構成されるデータを記録・伝送する際に、どのような順番で
格バイトを記録・伝送するかを表す順序のこと。( UTF-8 などはエディアン関係ない )

 

何故、エディアンを指定するのか。

UTF-16 などではビット列の並びとして、
ビッグエディアンリトルエディアン両方を許容しているため、
誤ったエディアンで文章を読み込むと判断できなくなってしまうから。
このため、ファイルの先頭にある BOM を読み込んで、文章が
どちらのエンディアンで作成されたかを判別してから本文を読み込む。

 

こちらから。
http://wa3.i-3-i.info/word11423.html
http://e-words.jp/w/BOM.html
http://e-words.jp/w/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3.html

 

以上。