CSVの文字化けを直す方法|Excel・UTF-8・Shift_JISの基礎
Excelで開いたCSVが「譁・喧縺・」のように文字化けする——原因は文字コード(UTF-8とShift_JIS)の食い違いです。なぜ起きるのか、その場で直す手順、崩れにくいデータの渡し方までまとめます。
文字化けの正体は「文字コードの食い違い」
CSVはただのテキストファイルですが、ファイルの中身がどの文字コードで書かれているかという情報を、はっきり持っていないことがあります。書き出した側と開いた側で想定する文字コードがずれると、同じバイト列を別の文字として解釈してしまい、文字化けが起こります。
日本語でよく関わるのがUTF-8とShift_JIS(cp932)の2つです。UTF-8で保存されたCSVをShift_JIS前提のソフトで開く(またはその逆)と、日本語部分だけが崩れます。英数字は化けないのに日本語だけ化ける、というのが典型的なサインです。
Excelで開くと化ける定番パターン
Windowsの古いExcelは、CSVをダブルクリックで開くとShift_JISとして読もうとします。そのため、Webサービスやプログラムが出力したUTF-8のCSVをそのまま開くと、日本語が文字化けします。これはExcelの初期動作によるもので、ファイル自体が壊れているわけではありません。
回避策は大きく2つです。1つはExcel側で「データ」→「テキストまたはCSVから」を使い、読み込み時に文字コードをUTF-8に指定する方法。もう1つは、ファイル側をExcelが素直に読める形(UTF-8 BOM付き、またはShift_JIS)に保存し直す方法です。
UTF-8とShift_JISの直し方
手元で直すだけなら、メモ帳やVS CodeなどのエディタでCSVを開き、文字コードを指定して保存し直すのが手軽です。Excelで素直に開きたいなら「UTF-8(BOM付き)」での保存が最も無難で、多くの環境で文字化けせずに開けます。
逆に、Shift_JIS前提の古い業務システムに取り込ませる場合は、Shift_JIS(cp932)で書き出す必要があります。渡す相手がどちらを想定しているかを先に確認しておくと、何度も保存し直す手間を減らせます。
区切り・改行・引用符でも崩れる
文字化け以外にも、CSVは「列がずれる」トラブルが起きやすい形式です。セルの中にカンマや改行が含まれていると、適切に引用符(")で囲まれていない場合に列の数が合わなくなります。住所や自由記述欄を含むデータで特に起こりがちです。
区切り文字がカンマではなくタブやセミコロンになっていることもあります。開いたときに全部が1列に入ってしまう・列が大きくずれるといった症状が出たら、文字コードだけでなく区切り文字と引用符の扱いも疑ってみてください。
JSONやParquetを経由して整える
崩れたCSVをそのまま手直しするより、いったん別の形式に通して整える方が早いことがあります。CSVをJSONに変換して構造を確認したり、データ基盤に載せるならParquetに変換して型と文字コードを固定したりすると、以降の取り回しが安定します。
当サイトの「CSVをJSONに変換」「CSVをParquetに変換」ツールはブラウザ内で処理するため、顧客データや社内データを含むCSVでも、外部サーバーへ送らずに変換できます。中身を確認したいだけのときにも便利です。
まとめ:まず文字コードをそろえる
CSVの文字化けは、ほとんどがUTF-8とShift_JISの食い違いです。渡す相手の想定に合わせて文字コードをそろえ、Excel向けならUTF-8(BOM付き)で保存し直すのが基本の対処です。列ずれが出たら区切り文字と引用符も確認しましょう。
CSV⇄JSON・CSV⇄Parquetの変換は、当サイトで無料・登録不要・ブラウザ内処理で使えます。データの中身を壊さずに形式を整えたいときに役立ててください。