Python で UTF-8 の BOM のありなしを見分ける方法について見てみたいと思います。 UTF-8 には、「バイト・オーダー・マーク」、通称「 BOM 」と呼ばれるものがあります。これはテキストの始まりをプログラムに伝えるためのデータ内の特定のマークのことであり、具体的にはユニコード文字 U+FEFF がそのマークとして使用されています。 UTF-8 にはこの BOM があるものと無いものとが存在していて、前者を「 BOM あり UTF-8 」( UTF-8 with BOM )、後者を「 BOM なし UTF-8 」あるいはただの「 UTF-8 」と呼んだりします。 詳しくは Wikipedia がわかりやすいので興味のある方はご覧になってみてください。 Byte order mark - Wikipedia この UTF-8 の BOM を Python で扱う方法について見