Shift_JISまたはWindowsの日本語コードページで作られたCSVをUTF-8として開くと、漢字やカタカナが文字化けします。ファイルを上書きしてから直すのではなく、文字コードを確認し、Excelの読み込み画面で正しいコードを指定します。
Shift_JISとCP932の関係
Windowsのコードページ932は、日本語のShift_JIS系エンコーディングです。実務では「Shift_JIS」「SJIS」「CP932」「Windows-31J」などの表記が使われ、完全に同じ意味として扱えない場面もありますが、古いWindowsソフトや業務システムのCSVでよく見られます。
ファイルの作成元が「Shift_JISで出力」と案内している場合は、最初からUTF-8へ決めつけないでください。
CSV診断で文字コードを確認する
CSVの文字コードと区切り文字を確認する方法で原本を選びます。CSV_ENCODING_SHIFT_JIS が表示された場合、ブラウザ内の判定ではShift_JIS系として読める可能性が高い状態です。
自動判定はファイルの一部から推定するため、短い英数字だけのCSVではUTF-8とShift_JISを区別できないことがあります。日本語を含む行、作成元の仕様、Excelのプレビューを合わせて確認します。
Excelで文字化けせずに読み込む
- 元CSVを複製し、原本を残す
- Excelで空のブックを開く
- 「データ」から「テキストまたはCSVから」を選ぶ
- 対象ファイルを指定する
- 文字コードまたはファイルの配信元で、日本語のShift_JIS系を選ぶ
- 区切り文字をカンマ、タブなど診断結果に合わせる
- プレビューで氏名、住所、見出しが読めることを確認する
- 先頭ゼロや日付が必要な列は「テキスト」として読み込む
Excelのバージョンによって項目名は異なります。候補に「932: 日本語(シフトJIS)」がある場合は、それを選んでプレビューを比較します。
UTF-8へ変換する場合
相手先がUTF-8を要求する場合は、正しくShift_JISとして読み込んだ後、別ファイルとしてUTF-8 CSVへ保存します。
- 原本を上書きしない
- 保存前後で行数と列数を比較する
- 環境依存文字や特殊記号が欠けていないか確認する
- 数式、表示形式、複数シートはCSVへ保持されないことを理解する
- 再度開くときもダブルクリックではなく読み込み画面を使う
文字コードを変換しても、区切り文字や引用符の崩れは直りません。1列表示も起きる場合はCSVがExcelで1列になる場合の区切り文字確認を先に確認します。
判定がUTF-8になる場合
CSV_ENCODING_UTF8 や CSV_BOM_MISSING が表示されるなら、Shift_JISではなくUTF-8の可能性があります。その場合はUTF-8のCSVがExcelで文字化けする場合の手順で65001を指定します。
どちらを選んでも一部の文字だけ化ける場合は、ファイル内で複数の文字コードが混在している、変換前に文字が失われている、作成元独自の形式である可能性があります。推測で置換せず、作成元から文字コード仕様を確認してください。