ExcelでCSVが文字化けするときの対処法 ― 原因別に解説
「CSVファイルをダブルクリックで開いたら文字化けしてた」——Excelを業務で使っている人なら、一度は経験があるんじゃないでしょうか。
原因はほとんど決まっていて、CSVの文字コード(たいていUTF-8)とExcelが想定する文字コード(Shift-JIS)のミスマッチです。仕組みの詳しい話は別の記事で解説しているので、ここでは「とにかく今すぐ直したい」という方向けに、状況ごとの具体的な対処法をまとめました。
まず確認:どんな文字化けが起きていますか?
文字化けの見た目で、おおよその原因がわかります。
「縺ョ繧後※」「譁ー螳壹→」のような、漢字まじりの意味不明な文字列が並んでいるなら、UTF-8のファイルをShift-JISとして開いてしまっています。Excelで起きる文字化けの9割はこのパターンです。
逆に「�」(黒いひし形に?マーク)がたくさん出ている場合は、Shift-JISのファイルをUTF-8として読もうとしている可能性があります。これはMacのNumbersやGoogleスプレッドシートで起きがちです。
「カナカナ」のような半角カタカナだらけになっていたら、EUC-JPかISO-2022-JPかもしれません。古めのシステムから出力されたCSVに見られるパターンです。
対処法1: BOM付きUTF-8に変換してから開く
いちばん確実で、しかもこの先ずっと使えるのがこの方法です。CSVファイルの先頭にBOM(Byte Order Mark)という短い目印を付けてあげると、ExcelがUTF-8ファイルだと認識してくれます。
手軽にやるならオンラインツールがおすすめです。
CSV Rescueならファイルをドロップするだけ。文字コードを自動検出して、BOM付きUTF-8に変換します。ファイルはサーバーに送られないので、業務データも安心です。
文字化け修正ツール →ツールを使わずにやりたい場合は、Windowsのメモ帳でも対応できます。
ひとつ注意点として、メモ帳は数万行を超えるような大きなファイルの処理が遅いです。「上書き保存」だと改行コードが変わったりすることもあるので、大事なデータを触るときは念のため元ファイルのバックアップを取っておくといいですよ。
対処法2: Excelの「データの取得」で文字コードを指定する
CSVファイル自体には手を加えず、Excel側の読み込み方を変えるやり方です。ファイルを一切変更したくないときに使えます。
この方法の難点は、毎回手動で文字コードを指定しないといけないところ。自分ひとりならまだいいんですが、ITにそこまで詳しくないメンバーに毎回この手順を踏んでもらうのは、ちょっと現実的じゃないかもしれません。「ダブルクリックで正しく開ける」状態にしたいなら、やっぱり対処法1のBOM付与がおすすめです。
対処法3: いっそExcel形式(.xlsx)に変換する
そもそもCSVのまま配る必要がないなら、Excel形式に変換してしまうのも手です。.xlsxファイルなら文字コードの問題は起きません。セルの書式も保持されるし、先頭ゼロが消える「0落ち」も回避できます。
「CSVで受け取ったデータを社内に展開する」みたいな場面では、受け取った時点でExcelに変換してから共有すると、後工程の人が文字化けで悩まなくて済みます。
CSV RescueのCSV→Excel変換ツールなら、CSVをドロップするだけでExcelファイルに変換できます。列幅の自動調整やヘッダー太字にも対応しています。
Excelから保存したCSVが、別のシステムで文字化けする場合
ここまでは「CSVを開く」ときの話でしたが、逆方向のトラブルもあります。Excelで編集して保存したCSVを別のシステムに取り込んだら文字化けした、というケースです。
Excel(日本語Windows版)で「CSV UTF-8(コンマ区切り)」を選んで保存すると、BOM付きのUTF-8で出力されます。Excelで開く分にはこれで問題ないんですが、一部の古いシステムはBOMをうまく処理できず、先頭に  みたいなゴミが混入することがあります。
この場合はBOMを取り除いてあげればOK。CSV Rescueの文字コード変換ツールで「UTF-8(BOMなし)」を選べば対応できます。
もうひとつ注意したいのが、Excelで「CSV(コンマ区切り)」を選んで保存した場合。こちらはShift-JIS(CP932)で出力されます。クラウドサービスにインポートするCSVがShift-JISだと、UTF-8を期待しているサービス側で文字化けが起きます。保存形式をどちらにしたかで、まったく違う問題が発生するわけですね。
結局、いちばんトラブルが少ない運用は?
万能な正解はないんですが、実務でいちばんトラブルが少ないのは次のような運用です。
CSVを受け取ったら、まずBOM付きUTF-8に変換してからExcelで開く。社内で共有するデータは、できればCSVじゃなくてExcel形式にしてしまう。自分がCSVを出力する側なら、最初からBOM付きUTF-8で書き出す。
地味なルールですけど、これを徹底するだけで「CSVが文字化けしたんですが……」というヘルプデスクへの問い合わせはかなり減るはずです。
文字コードの判別や変換が面倒なら、CSV Rescueにおまかせください。ファイルをドロップするだけで、自動検出・自動変換します。
文字化け修正ツール →