UTF-8のCSVをExcelで開いたら日本語が文字化けした。そんなとき、まず避けたいのは、文字化けした状態のまま「名前を付けて保存」で上書きすることです。
元CSVをコピーして残し、Excelのデータ取り込みから開き直します。Microsoftも、BOMなしのUTF-8 CSVについてはPower Queryの「テキスト/CSVから」などを使って開く方法を案内しています。
なぜUTF-8なのに文字化けするのか
「UTF-8ならExcelで必ず正しく開く」とは限りません。Microsoftの案内では、UTF-8 CSVがBOM付きの場合は通常どおり開ける一方、BOMなしでは取り込み機能を使う方法が示されています。
つまり問題は、CSVの日本語が壊れているとは限らず、Excelがファイルを開くときの解釈にあります。
最初に元CSVをコピーする
作業前に元ファイルを複製します。
文字化け修正中に怖いのは、文字コードだけでなく次のような値まで変わることです。
00123→123- 長い識別番号 → 指数表記や丸め
2026-09→ 日付として別表示
文字が読めるようになっても、IDが変わっていれば修復ではありません。
Excelの「テキスト/CSVから」で開く
Excelでは、データタブからテキスト/CSVを取り込めます。Power Query系の取り込みでは、読み込み前のプレビューでファイルの解釈を確認できます。
手順の考え方は次の通りです。
- 新しいExcelブックを開く
- データから「テキスト/CSV」を選ぶ
- 対象CSVを指定する
- プレビューで日本語と列区切りを確認する
- 必要ならファイルの解釈や区切りを修正する
- 正しく見えてから読み込む
Excelの版や環境で表示名は変わりますが、ポイントは「ダブルクリックで即展開」ではなく、プレビューできる取り込み経路を使うことです。
1列にまとまる場合は文字コード以外も見る
日本語は読めるのに、全データがA列へ入る場合は文字コードではなく区切り文字の可能性があります。
たとえば実ファイルがTAB区切りなのに、カンマ区切りとして読むと列に分かれません。文字化けと列ずれは別々に確認します。
BOMを付ければ常に正解ではない
BOM付きUTF-8はExcelで扱いやすくなる場合がありますが、受け渡し先によってはBOMなしUTF-8を要求することもあります。
CSVの最終形式は「自分のExcelで開けるか」だけでなく、インポート先の仕様で決めます。
すでに文字化け状態で上書きした場合
元ファイルが残っているなら、上書き後のファイルを何度も変換するより元ファイルへ戻るほうが安全です。
元ファイルがない場合は、バックアップ、メール添付、ダウンロード元、クラウドのバージョン履歴などから原本を探します。壊れた文字列から元の日本語を推測して戻す作業は、変換の種類によっては完全には復元できません。
再発防止
受け渡し手順に、次の3点を残しておくと再発を減らせます。
- 出力文字コード
- 区切り文字
- Excelでは「開く」のか「テキスト/CSVから取り込む」のか
「CSVで渡してください」だけでは、実務仕様として不足する場合があります。
参考一次資料
- Microsoft Support: Excel で CSV UTF-8 ファイルを正しく開くには
https://support.microsoft.com/ja-jp/excel/opening-csv-utf-8-files-correctly-in-excel - Microsoft Support: Power Query for Excel Help
https://support.microsoft.com/ja-jp/office/power-query-for-excel-help-2b433a85-ddfb-420b-9cda-fe0e60b82a94
