唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

Pythonで出力したCSV(UTF-8)がExcelで読み込めなくて困った話

Pythonで出力したUTF-8CSVを渡したら「文字化けしてExcelで読めない」と言われて困りました

原因は文字コードUTF-8の時によく問題になるBOM(バイトオーダーマーク)です

UTF-8のファイルにはBOMが付いている場合と付いていない場合があります

ExcelはBOMが付いていないと正しく読み込んでくれません
なので、例えばメモ帳で開いて保存し直すと、BOMが付いてExcelでも開けるようになります

今回の問題とは逆にBOMがついていると動かないこともあって、以前BOMが付いたUTF-8のファイルをChromeに渡したら何故か動かなくて悩みました

Google Chrome のユーザースクリプトで名前やバージョン番号が反映されない - 唯物是真 @Scaled_Wurm
ちなみにPythonだと文字コードutf-8ではなくutf-8-sigを指定するとBOM付きのファイルを読み書きできます