はじめに結論から Pythonで UTF-8 BOM有りを読み込む場合はエンコードを 'utf_8_sig' と指定する。 ファイルを読み込む例 io.open(filename, "r", encoding="utf_8_sig") str型(UTF-8)からunicode型に変換 uni_string = unicode(str_string, 'utf_8_sig') かきはじめに UTF-8 をPythonで読み込む際にちょっとハマったので、忘失防止として書き留めます。 BOMとは UTF-8 には BOM(Byte order mark)が付く場合があります。 これはエンコードがUTF-8であるという、識別子です。 ファイルの先頭3バイトが 'EF BB BF' となっています。 厄介なのが、BOMが有るUTF-8と、無いUTF-8があるのです。 UTF-8にBOMを付けるのは、