Excel 向けに CSV を書き出すときは頑張って CP932 に変換するよりも BOM 付き UTF-8 にする方が簡単、ということを次回必要になったとき思い出せるといいな…
— Keita Urashima (@ursm) 2014, 7月 6
な、なん(略
試しにBOM付きUTF-8で手作りしてみたら、Excel 2010でちゃんと読んでくれました。
他のバージョンは手元にないので確認できないのですが、ググったところ2003と2007でも読めるようなので心配なさそう。
いままで頑張ってCP932にしていたので、変換時の試行錯誤をまるっと省略できればだいぶ楽です。
CP932しか読んでくれないものと決めつけていました。
ただ改行コードはCR+LFにしないと行をちゃんと判断してくれないようです。
LFのみにしたら2行しかないのに行数オーバーってことでおこられました。
コメント
元々読み込むときにUTF-8って指定できた気がする(区切り文字とかを指定する画面で)。
それがBOM付きだとうまいこと自動認識できるってことなのかな。
ただし、保存するとCP932になるというスーパートラップがあるみたいなので、
エクスポート→Excelで編集→インポート
みたいなことやる場合は危険な予感
いま2010であらためて試してみたのだけれど、BOM付いていないとそのダイアログが出ませんでした。
同じファイルをBOM付けてみたら出てきたので、やはりBOMがカギなんじゃないかと思いました。
いつのまにか先頭ゼロ消されちゃってハマるとか、Excelを中間に挟むとトラブルの元ですな。