CSVが文字化けした、読み込めないときに、UTF-8・Shift_JIS・BOMの違いと安全な確認方法を利用者目線で解説します。
確認の流れ
CSVは見た目が同じでも保存方式が違う
CSVは「カンマで区切った文字データ」ですが、日本語をどの番号で表すかには複数の方式があります。現在よく使われるUTF-8と、古い業務ソフトでも多いShift_JISでは同じ日本語でも内部のバイト列が異なります。受け取り側が想定していない方式だと、文字化けや読み込みエラーになります。
| 形式 | 特徴 | 起きやすいこと |
|---|---|---|
| UTF-8 | Webや新しいシステムで一般的 | 古いソフトでは文字化けすることがある |
| UTF-8 with BOM | 先頭に識別用の情報を付ける | BOM必須・非対応の差が出ることがある |
| Shift_JIS | 国内の古い業務環境で今も利用 | 表現できない文字が含まれる場合がある |
BOMは「UTF-8だと伝える目印」のようなもの
BOMはファイル先頭に付く短い情報です。Excelや一部の業務システムでは、BOM付きUTF-8の方が日本語を正しく判別しやすい場合があります。一方で、取り込み仕様によってはBOMなしを前提にしていることもあります。そのため「UTF-8にすれば必ず直る」とは限りません。
元ファイルを直接上書きしない
文字化けを見つけたら、まず元ファイルをコピーして残してください。文字コードを変換して上書きすると、元の状態との比較ができなくなります。前回成功ファイルが残っていれば、同じ保存方式かを比較するのが最短です。Excelで開いて保存し直した直後に問題が出た場合は、その保存操作で形式が変わっていないかも確認します。
取り込み先の仕様書に文字コード指定があればそれを最優先します。指定がない場合は、以前成功したファイルと同じ形式へ合わせるのが安全です。
文字化けが見えても、実際には区切り文字や引用符の崩れが同時に起きている場合があります。また、ファイルをExcelで開いた時点では正しく見えても、保存時に形式が変わることがあります。「どのソフトで開いたか」「どの形式で保存したか」も作業メモに残すと再現しやすくなります。
文字コード変更だけで直らない場合もある
Import Doctorでは、この記事で説明した考え方を使って実際のデータや条件を確認できます。
