CSVをExcelで開いたら「�」だらけになった。この瞬間、ファイルが壊れたと思ってしまいますが、たいていの場合そうではありません。
中身は無傷で、読み方だけが食い違っています。 だから正しい読み方で開き直せば、そのまま元に戻ります。ここが分かっていないと、まだ読めるファイルを捨ててしまうことになります。
なぜCSVがExcelで化けるのか
日本語圏でいちばん多いのがこれです。いまのシステムが書き出すCSVはたいていUTF-8ですが、Excelは拡張子が`.csv`のファイルを、環境によってはShift_JISとして開こうとします。中身はUTF-8なのに、Shift_JISの規則で読むので化けます。
解決策は主に3つあります。
- BOM付きのUTF-8で保存する — 先頭に「これはUTF-8です」という短い目印を付ける方法です。ExcelはこれがあるとUTF-8として開きます。もっとも手軽で、相手に手順を説明しなくて済みます。
- Excelの「データ」→「テキストまたはCSVから」で読み込む — 開くのではなく取り込む形にすると、文字コードを選べます。ファイルを触らずに済むのが利点です。
- Shift_JISで書き出してもらう — 相手のシステムが対応していれば確実ですが、Shift_JISで表せない文字が落ちるので、いまは第一候補にはしにくいです。
ほかによくある化け方
- メールの件名だけ化ける — 件名は本文と別の方法で符号化されています。古いソフトが送ったものは、いまのソフトで読めないことがあります。本文が読めるなら、ファイル自体の問題ではありません。
- 「①」「㈱」「Ⅲ」が化ける — 機種依存文字です。環境によって割り当てが違うので、相手先で別の文字や空白になります。社外に出す文書では避けるのが無難です。
- 「〜」だけ化ける — 波ダッシュには見た目のよく似た2種類(U+301CとU+FF5E)があり、変換の途中で取り違えられることがあります。日本語のテキスト処理で昔から続いている厄介ごとです。
- 半角カナが消える・化ける — 古い規格の名残で、扱いが環境ごとに違います。全角に直しておくと事故が減ります。
直すための道具
CSVの中身を確かめたいときは、CSV ⇄ JSON 変換に貼り付けると、どう読み取られたかが表として出ます。区切り文字も選べるので、タブ区切りで書き出されたものも扱えます。読み取り結果を見れば、化けているのが文字コードのせいなのか、区切り方のせいなのかを切り分けられます。
半角カナや記号の揺れをまとめて直したいときは、全角・半角変換が使えます。英数字だけ半角にしてカナは全角のまま、といった指定ができるので、住所録のような表の整形に向いています。
まとめると、文字化けを見たらまず「読み方が違うだけ」を疑う。元のファイルを保ったまま、別の文字コードで開き直してみる。この順番でやれば、たいていは何も失わずに済みます。
この記事で紹介したステム分離は、ブラウザで無料で試せます(登録不要・音源は端末から出ません)。