■BOMとは
UTF-8にはBOMありとBOMなしの2種類がある。 先頭にutf-8の文字列であることを示すバイト列が入る Windows付属のメモ帳では標準で追加される BOM付き(UTF-8)の場合、先頭に三バイトのBOMを付加してある。 BOMは具体的には0xEF 0xBB 0xBF。 BOM無し(UTF-8N)にはこの三バイトが付きません。 BOMとは、UnicodeのUTF-16など16ビット幅のエンコーディング方式において、 エンディアンを指定するためにファイルの先頭に記入される16ビットの値。 UTF-16などではビット列の並びとしてビッグエンディアンとリトルエンディアンの両方を許容しているため、 誤ったエンディアンで文書を読み込むと判読できなくなってしまう。 このため、ファイルの先頭のBOMを読んで、文書がどちらのエンディアンで作成されたかを判別してから本文を読み込む。 BOMは16進数で「FEFF」という16ビットの値で、誤ったエンディアンで読み込むと、 これが「FFFE」となる。BOMが「FFFE」となった場合には逆のエンディアンを使って読み込めば正しく読み込むことができる。 BOMはエンディアンの判別だけでなく、文書がUnicodeで記述されているかどうかを 判別するために用いられることもある。このため、エンディアンが関係ないUTF-8などの文書でも先頭にBOMがついている場合がある。 BOM付きかBOM無しかはファイルの先頭にBOMデータを付けるか、付けないかが異なるだけで、 ファイルの内容そのものや、文字コード(符号化方式)自体は同じUTF-8であって違いはありません。