LoginSignup
0
1

More than 3 years have passed since last update.

Excelは何のエンコードでCSVファイルを読めるのか決着を付けよう

Posted at

結論

UTF-8 with BOM (Byte Order Mark)でエンコードするといいっぽい。

結論だけでは短すぎるので、背景

CUIでの処理が多いとはいえ、ちょっとした分析をしたり、非IT領域の方にデータを提供したりするときなど、ExcelでCSVファイルを読み出したいことは意外にある。
ところが、大体プログラムでUTF-8やらShift_JISやらでCSVに吐き出してそのままExcelで開くと文字化けする。
「データ」リボンの「テキスト/CSVから」で読み込めば読み込みの際の文字コードを指定できるじゃないかというツッコミはあるかもしれないが、面倒くさい
最初からExcelが開けるエンコードがあるはず、と思い検索を掛けても意外に引っかからない。ということで思い当たるエンコードを調べた結果、上の結論に至った。

エンコードを変えられるソフト

プログラミング用のエディタならだいたい対応しているが、たかがCSVの文字コード変換なので軽いものがよさそう。
WindowsではNotepad++, MacではSublime Textなどだろうか(完全にここは好みが反映されている)。

BOMとはなんだろうか

Wikipediaの記事参照。
このファイルがUnicodeで、何でエンコードされているかを示すファイル頭の数バイトのデータ。ちょっと前までWindowsのNotepadで勝手に付いてしまい他OSとのテキストファイルのやり取りに一癖を加えていたやつだった。Excelではまだ勝手に付いてしまうし、付いていないと読み出しに失敗するようだ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1