CSVを開いたときに日本語だけが崩れても、データそのものが消えたとは限りません。最初に「どの文字コードで保存されたか」と「アプリがどの文字コードとして読んだか」を分けて確認します。
今回確認するCSV
氏名,住所
山田太郎,東京都画面に見える文字は同じでも、UTF-8とShift_JIS/Windows-31Jでは日本語を表すバイト列が異なります。正しい原本を残したまま、コピーで確認してください。
文字化けは保存形式と読み方の不一致で起きる
UTF-8のバイト列をShift_JISとして読む場合も、その逆の場合も文字化けします。拡張子が.csvでも文字コードは判別できません。まず文字コード判定ツール、構造も同時に調べるならCSV文字コード・総合診断で候補を確認します。
自動判定は推定です。特に英数字だけの短いCSVはASCII範囲のバイトしかなく、UTF-8とShift_JISのどちらでも同じように読めるため、作成元や取込先の仕様が必要です。
症状から確認箇所を絞る
| 症状 | 可能性 | 最初の確認 |
|---|---|---|
| 日本語全体が崩れる | UTF-8とShift_JISの取り違え | 原本の文字コード |
| Excelで直接開くときだけ崩れる | Excel側の自動判定 | [データ]から文字コードを指定 |
| 1列目の名前だけ一致しない | UTF-8 BOMの扱い | BOMの有無と取込仕様 |
一部が?や代替文字になる | 変換先で表現できない文字 | 絵文字・機種依存文字 |
「開き方」「変換」「BOM操作」は別の処置
1. 開き方を変える
ファイルはUTF-8のまま、Excelの[データ]→[テキストまたはCSVから]でUTF-8を指定します。別システムへ渡す形式を変えず、表示だけ直したい場合の第一候補です。
2. 文字コードを変換する
取込先がUTF-8を要求するならShift_JISからUTF-8へ変換し、Shift_JIS/Windows-31Jを要求するならUTF-8からShift_JISへ変換します。後者では絵文字など表現できない文字があるため、警告を確認します。
3. UTF-8 BOMを追加・削除する
BOMはUTF-8ファイル先頭のEF BB BFです。文字コード自体を変換せず、必要な場合だけUTF-8 BOM追加・削除ツールで操作します。Excelで認識されやすくなる場合がありますが、取込先がBOMなしを要求することもあります。
安全に直す手順
- 文字化けする前の原本を別名で保管します。
- 文字コード判定と作成元の仕様から、原本の文字コードを確認します。
- 取込先が要求する文字コードとBOMの有無を確認します。
- 開き方の変更だけでよいか、文字コード変換が必要かを決めます。
- 変換後の冒頭数行と、日本語・特殊文字を原本と照合します。
例のCSVがUTF-8で、Excelだけが誤って解釈しているなら、変換せずUTF-8を指定して開きます。取込先がShift_JIS指定なら、変換後に各見出しと日本語が保たれているか確認します。
文字化けした状態で上書きした場合
文字化けした表示をそのまま保存すると、元のバイト列が別の文字列へ置き換わる場合があります。その後に文字コードだけ戻しても、失われた文字を確実には復元できません。元CSV、送信元の再出力、バックアップからやり直すのが安全です。
列が増える、1レコードが複数行に見える症状は文字コードではなく、区切り文字や引用符の問題かもしれません。総合診断で文字コードとCSV構造を分けて確認します。
まとめ
文字化けは、まず保存時の文字コードと読み込み時の設定の不一致を疑います。原本を残し、判定結果を絶対視せず作成元・取込先の仕様と照合してください。開き方、文字コード変換、BOM操作のうち必要なものだけを行い、処理後の実データを確認します。