CSV・文字コード

Shift_JIS・CP932のCSVが文字化けする場合

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で文字化けせずに読み込む

  1. 元CSVを複製し、原本を残す
  2. Excelで空のブックを開く
  3. 「データ」から「テキストまたはCSVから」を選ぶ
  4. 対象ファイルを指定する
  5. 文字コードまたはファイルの配信元で、日本語のShift_JIS系を選ぶ
  6. 区切り文字をカンマ、タブなど診断結果に合わせる
  7. プレビューで氏名、住所、見出しが読めることを確認する
  8. 先頭ゼロや日付が必要な列は「テキスト」として読み込む

Excelのバージョンによって項目名は異なります。候補に「932: 日本語(シフトJIS)」がある場合は、それを選んでプレビューを比較します。

UTF-8へ変換する場合

相手先がUTF-8を要求する場合は、正しくShift_JISとして読み込んだ後、別ファイルとしてUTF-8 CSVへ保存します。

  • 原本を上書きしない
  • 保存前後で行数と列数を比較する
  • 環境依存文字や特殊記号が欠けていないか確認する
  • 数式、表示形式、複数シートはCSVへ保持されないことを理解する
  • 再度開くときもダブルクリックではなく読み込み画面を使う

文字コードを変換しても、区切り文字や引用符の崩れは直りません。1列表示も起きる場合はCSVがExcelで1列になる場合の区切り文字確認を先に確認します。

判定がUTF-8になる場合

CSV_ENCODING_UTF8CSV_BOM_MISSING が表示されるなら、Shift_JISではなくUTF-8の可能性があります。その場合はUTF-8のCSVがExcelで文字化けする場合の手順で65001を指定します。

どちらを選んでも一部の文字だけ化ける場合は、ファイル内で複数の文字コードが混在している、変換前に文字が失われている、作成元独自の形式である可能性があります。推測で置換せず、作成元から文字コード仕様を確認してください。

参考情報

CSV・文字コード

テーマを見る