Problem solving guide

CSVの文字コードは合っているのに取り込めないときの確認方法

「指定どおりShift_JISにしたのにエラーになる」「UTF-8なのに受け付けてもらえない」という場合、原因は文字コード以外にあるかもしれません。CSVは、BOM・区切り文字・改行コード・列の並び・行の構造が少し違うだけでも、読み込み側の仕様によってはエラーになります。

文字コードが合っていても取り込めない主な5つの原因

1

UTF-8 BOMの有無が違う

同じUTF-8でも、ファイル先頭にBOMが付いているかどうかは別の違いです。読み込み側によっては「UTF-8 BOM付き」を前提にしていたり、逆にBOMなしを想定していたりします。

2

区切り文字が違う

見た目は表でも、カンマ区切り、タブ区切り、セミコロン区切りなどがあります。読み込み側がカンマを想定しているのにタブ区切りなら、1行全体を1列として扱ったり、列数エラーになったりします。

3

改行コードが違う

Windowsでよく使われるCRLFと、LFではファイル内の改行表現が異なります。多くのソフトは両方を扱えますが、古いシステムや仕様が厳しい取込処理では差になることがあります。

4

見出し名や列の並びが違う

必要な列がそろっていても、列順が違うだけでエラーになる取込処理があります。また「社員番号」と「社員ID」のように意味が近くても、見出し名の完全一致を要求する場合があります。

5

途中の行だけ列数が違う

セル内のカンマや改行が正しく引用符で囲まれていない、途中の行だけ項目が欠けている、といった場合です。先頭数行が正常でも、後半の1行だけが原因で取込全体が失敗することがあります。

この順番で確認すると切り分けやすい

すべてを一度に変更すると、何が原因だったのか分からなくなります。元ファイルを残したまま、形式の違いを確認してから必要な項目だけ直します。

  1. 1

    文字コードが本当に指定どおりか確認する

    「Shift_JIS」と案内されていても、実際にはWindows-31J(CP932)を想定しているシステムがあります。文字化けが起きている場合は、先にCSVの文字化けガイドで確認してください。

  2. 2

    正常に使えるCSVがあれば、形式を横に並べて比べる

    過去に正常に取り込めたCSV、または取込先から配布されたテンプレートがあれば基準にできます。データ内容ではなく、BOM・区切り・改行・見出し・列順に違いがないかを見ます。

  3. 3

    違っている形式だけを揃える

    列名の意味を推測して置き換えたり、データ値を勝手に補正したりせず、形式として安全に判断できる項目だけ直します。変更後は、行数やセル内容が意図せず変わっていないか確認します。

What to compare

正常なCSVと比べるポイント

確認項目違いの例対応
文字コードUTF-8 / Windows-31J必要なら変換
BOMあり / なし基準CSVに合わせる
区切り文字カンマ / タブ解析して再出力
改行コードCRLF / LF基準CSVに合わせる
見出し・列順A,B,C / C,A,B同じ見出しなら並べ替える
行の構造途中の行だけ列数が違う該当行を確認する

Compare with a reference

基準のCSVがあるなら、形式の違いをまとめて確認できます

CSVお手本変換では、お手本CSVと今回CSVを比べ、文字コード・BOM・改行・区切り・列の並びのうち、安全に判断できる項目だけを揃えます。ファイル内容はブラウザ内で処理します。

CSVお手本変換を使う

形式を揃えても取り込めない場合

ここまでの形式が同じなら、次はCSVの中に入っている値のルールを確認します。取込先によって、必須項目、最大文字数、数値の桁数、日付形式、使用できない文字、コード値の候補などが決められている場合があります。

特に日付でエラーになる場合は、CSVの日付形式がバラバラで取り込めないときの直し方も確認してください。エラー行やエラー列が表示されるシステムなら、その位置から値の仕様を絞り込む方が早いです。

よくある疑問

CSVがExcelで普通に開ければ、形式は問題ないですか?

いいえ。Excelは複数の形式を柔軟に読み込めるため、Excelで表示できても取込先の仕様と一致しているとは限りません。

拡張子が.csvならカンマ区切りですか?

必ずしもそうとは限りません。拡張子が.csvでも、実際の区切りがタブやセミコロンになっているファイルはあります。中身を解析して確認する必要があります。

正常に取り込めたCSVが手元にない場合は?

取込先のマニュアルや配布テンプレートを確認してください。基準になるファイルがない場合は、形式を推測してまとめて変更するより、要求仕様を1項目ずつ確認する方が安全です。