未だにShift-JISに苦しまされた話
かつて担当していたシステムはWindowsサーバー上で動くシステムで文字コードMS932だったため、
全角チルダ問題だのJIS第三・第四標準漢字だのに散々悩まされました。
が、今実装しているシステムは新たにUTF-8を利用して作り直しているので、もう心配はありません。
文字コード問題は過去のものになったのだ、と昨日までは思っていました。
ExcelはCSVをShift-JISで開く
今作っているシステムは機能要件としてCSV出力が必要でした。
当然、出力する文字コードはUTF-8です。
人名も想定される出力データに含まれるのでShift-JISはあり得ません。
が、システムを利用してもらったところ、
「Excelで開いたら文字化けする」との苦情が入ってきました。
自分のPCにExcelを入れていないの手元で確認はできないのですが、
ExcelはCSVファイルを問答無用でShift-JISと見做して開くようです。
10年以上前から問題として挙がっているらしいのに未だに変えていないとは…。
自動判定するかせめてLibreOfficeみたいに開く前に確認ダイアログくらい出して欲しいものです。
対応策
とりあえず先頭にBOMを付ければさすがにUTF-8として認識するようです。
とはいえ、今回はたまたま大丈夫だったものの、CSVを他のシステムに連携した場合などのことを考えると、BOM付は事故が起こりそうで正直怖いです。
ASCII互換もなくなりますし(まぁASCII互換性を利用したことはありませんが)
他のメジャーどころのUTF-8対応していないもの
Lhaplusがzip解凍のファイル名をShift-JIS固定にしているので、ここもたまに事故ります。
ついでに、こちらは本当にSJIS固定なので、zip圧縮時の指定を変えるか別のアーカイバを使ってもらうしかありません。
まとめ
- ExcelでUTF-8のCSVを開きたい場合は要BOM
- Web側だけUTF-8化しても文字コード問題とお別れできるとは限らない