結論から
原因:CSVは「どの文字コードで書かれたか」を記録していない。日本語版Excelは長らくShift_JISを既定としてきたため、UTF-8のCSVを開くと崩れる。
直し方:CSVに「これはUTF-8です」という目印(BOM)を付けて保存する。これだけでExcelは正しく開きます。
方法1:ブラウザで変換する(いちばん速い)
CSVをドラッグ&ドロップするだけで、Excelで開ける形式(UTF-8・BOM付き)に変換できます。ソフトのインストールは不要です。
ファイルはサーバーに送信されません。ブラウザ内で変換され、そのままダウンロードされます。
方法2:Excelの「テキストファイル」から開く
- Excelを起動し、「データ」タブ → 「テキストファイル」
- CSVを選び、「区切り記号付き」を選択
- 「ファイルの元の形式」で 65001 : Unicode (UTF-8) を選ぶ
- 区切り文字を「カンマ」にして完了
毎回この手順が必要になるのが難点です。頻繁に開くファイルなら方法1か3が楽です。
方法3:メモ帳で保存し直す
- CSVをメモ帳で開く(文字化けしていなければOK)
- 「ファイル」→「名前を付けて保存」
- 文字コードを UTF-8(BOM付き) にして保存
Windows 11のメモ帳は既定がUTF-8になりましたが、BOMの有無は選べます。BOM付きを選んでください。
再発防止:出力する側を直す
毎回変換するのが面倒なら、CSVを出力するシステム側の設定を変えるのが根本策です。
よくある質問
BOMを付けると他のシステムで問題になりますか?
Excel・メモ帳・多くの業務システムでは問題ありません。一部のプログラムで先頭に不可視文字が混ざることがあるため、その場合だけBOMなしUTF-8を使ってください。
データの中身は変わりますか?
変わりません。文字コードと改行コードだけを変換します。
文字化けしたまま保存してしまいました
Excelで上書き保存すると、文字化けした状態が確定して元に戻せないことがあります。必ず元ファイルのバックアップからやり直してください。