sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

Byte Order Mark

Byte Order Mark(BOM)についての知識がなかったために、
プログラミング中悩んでしまったのでメモ。

BOMとは
UnicodeUTF-16など16ビット幅のエンコーディング方式において、
エンディアンを指定するためにファイルの先頭に記入される16ビットの値。

http://e-words.jp/w/BOM.html

UTF-8にはBOM付きとBOMなしの2種類が存在する。
エディタによっては、
BOM付きがUTF-8,BOMなしがUTF-8N。
pythonでは、
BOM付きがUTF-8-sig, BOMなしがUTF-8

この対応付けができていないと、エラーが発生する可能性がある。
もし、UTF-8関連でエラーが出たらBOMの有無を疑ってみましょう。