html5のfilesystem apiでユーザーが保存したcsvファイルをwindowsで開くと文字化けしちゃうみたいなんですが、どうすれば文字化けしないようにできますか?
プログラムを書いた時に使ったのはMacです。
文字コードを指定できるエディタで開くといいと思う
文字コード変えても文字化け直らなかったと言われましたね。
ダブルクリックでExcelで開こうとしてるなら、文字コード変換したあとに保存させるしかないんじゃないかな。
JavaScriptでも文字コード変換できるライブラリがあったはず
なるほど。ありがとうございます。文字コード変換のライブラリは以前使ったことがありました。そちらでUTF-8にして保存すればよいんですかね。プログラムを書いたエディターではUTF-8で書いていて、htmlの文字コード指定もutf8だったのですが、改めて変換の必要があるということなのでしょうか?
その辺の仕組みがいまいち分かってないです。。。
WindowsのExcelのCSVの仕様を確認しましょう。
たぶん、SJISだから。
なるほど。ありがとうございます。とりあえずos判定してwinの場合はsjisに変換するようにしてみます。それにしても、ソフトによって文字コードが変わるのであれば絶対的な解決策はなさそうですね。
Open officeとかだと開く時に文字コード確認して目視で読めるか確認する画面出して変換してくれるんだよね。
文字コードOSで固定というより候補並べてレコメンドの方がいいんだと思う。
ExcelはCSVはSJISじゃないと読めない。と思われてるが、実はUTF-8でもBOMがあれば読める。書きだす前に最初にBOMを書き込めばいい。あとWinとMacは改行コードが違うので、そのへんも注意した方がいいっぽい。
ありがとうございます。バイナリデータをいじらないといけないのですかねー。ちょっとよく調べないと難しそうですね。。
みんなの回答 3 件
文字コードを指定できるエディタで開くといいと思う
ダブルクリックでExcelで開こうとしてるなら、文字コード変換したあとに保存させるしかないんじゃないかな。
JavaScriptでも文字コード変換できるライブラリがあったはず
ExcelはCSVはSJISじゃないと読めない。と思われてるが、実はUTF-8でもBOMがあれば読める。書きだす前に最初にBOMを書き込めばいい。あとWinとMacは改行コードが違うので、そのへんも注意した方がいいっぽい。
関連するトピックス