CSVをExcelで開くと文字化けする原因と直し方
CSVをダブルクリックで開くと日本語が記号になるのは、ExcelがShift_JISとして読むためです。開き方を変える方法、BOM付きUTF-8で保存し直す方法、書き出す側で直す方法を状況別に整理しました。
公開読了目安 約3分
この記事の要点
- ダブルクリックで開くとExcelはShift_JISとして読む
- UTF-8のCSVはBOMが無いと化ける
- 元のファイルは壊れていないので開き方で直る
- 配る側はBOM付きUTF-8で書き出すと事故が減る
- 文字が疑問符に変わった後の保存は元に戻らない
目次
ExcelでCSVが化けるのは、ファイルが壊れたからではありません。 Excelが日本語版の既定でShift_JISとして読もうとし、UTF-8で書かれた中身とすれ違っているだけです。
だから直し方も「開き方を変える」か「読める形で保存し直す」の2択になります。 どちらを選ぶかは、ファイルを自分が配る側か、受け取る側かで決まります。
なぜダブルクリックだと化けるのか
CSVは中身が文字だけのファイルで、どの文字コードで書かれたかを名乗る仕組みを持ちません。
拡張子も.csvとしか言わないので、開く側が推測するしかない構造です。
日本語版のExcelは、ダブルクリックで開かれたCSVをShift_JISとみなします。 UTF-8で書かれた日本語は1文字が3バイトなので、Shift_JISの区切りで読むと別の漢字や記号として並びます。
これが「見慣れない漢字がずらりと並ぶ」あの見た目の正体です。 壊れているのはファイルではなく、読み方の食い違いです。
受け取る側の直し方
1. Excelの「データの取得」から開く
いちばん確実なのは、ダブルクリックをやめることです。 Excelを空の状態で起動し、「データ」タブの「テキストまたはCSVから」を選びます。
ファイルを指定すると、読み込む前に文字コードを選ぶ画面が出ます。 ここで「65001: Unicode (UTF-8)」を選ぶと、日本語が正しく並びます。
この方法は元のファイルを書き換えません。 1回だけ中身を見たいときや、相手にファイルを送り返す予定があるときに向きます。
2. 文字コードを変えて保存し直す
同じファイルを何度も開くなら、保存し直したほうが早く済みます。 CSVをメモ帳で開き、「名前を付けて保存」でエンコードを「UTF-8 (BOM付き)」にします。
以後はダブルクリックでも化けません。 ただしメモ帳は大きいファイルに弱いので、数万行あるCSVでは次の方法を使ってください。
3. 中身を読み直してから保存する
化けているのが本当にこの理由かどうかを、先に確かめたい場面もあります。 文字化け修復ツールにCSVを読み込ませると、文字コードごとに読んだ結果が並びます。
読める候補を選び、「UTF-8(BOM付き)」で保存し直せば、Excelで開ける形になります。 読み込みも保存もブラウザの中で終わるので、名簿や取引先データを外へ出さずに済みます。
配る側の直し方
受け取る人ごとに手順を説明するより、書き出す側で直したほうが早く片づきます。
- システムから書き出す: 出力の文字コード設定を「UTF-8(BOM付き)」にする
- Excelから書き出す: 「名前を付けて保存」でファイル形式に「CSV UTF-8 (コンマ区切り)」を選ぶ
- 相手が古い環境: Shift_JISで書き出す。ただし絵文字や一部の記号は入れられない
BOM付きのUTF-8は、Excelでも一般的なテキストエディタでも素直に開きます。 社内で1つ決めておくと、問い合わせがまとめて減ります。
やってはいけない直し方
化けた状態のまま、Excelで上書き保存しないでください。 画面に出ている記号がそのまま保存され、元の文字が本当に失われます。
疑問符(?)や四角い記号に変わってしまった文字も同じです。
これらは「読めなかった」という印で、元のバイトはすでに捨てられています。
状況別のまとめ
| 状況 | 選ぶ手 |
|---|---|
| 1回だけ中身を見たい | Excelの「テキストまたはCSVから」でUTF-8を指定 |
| 同じファイルを何度も開く | BOM付きUTF-8で保存し直す |
| 何の文字コードか分からない | 読み直して候補を見比べる |
| 自分が配る側 | 書き出しをBOM付きUTF-8に統一する |
| すでに疑問符に変わっている | 元のファイルを配布元からもらい直す |
化けは、開き方のすれ違いで起こります。 ファイルそのものが壊れる場面は少ないので、上書き保存だけ避けておけば、たいていは元に戻せます。
あわせて読みたい
同じテーマ・関連ツールの記事です。