拡張子が .csv でも、中身が必ずカンマ区切りとは限らない。
システムや地域設定によって、タブやセミコロンが区切り文字として使われることがある。
区切り文字が違うとどう見えるか
本来3列なのに、開くと全データがA列に入る。
これは「CSVが壊れた」のではなく、読み込み側がカンマを探しているのに、実ファイルはセミコロン区切りだった、というケースがある。
まずテキストとして先頭を見る
email;name;city のように見えるならセミコロン区切り。
タブ区切りは画面では空白に見えることがあるため、テキストエディタで不可視文字表示を使うと確認しやすい。
拡張子だけで判定しない
.csv は実務上かなり広い意味で使われる。読み込み時に区切り文字を指定できる場合は、内容に合わせる。
値の中の区切り文字
区切り文字と同じ文字が値に含まれる場合、引用規則が必要になる。
カンマ区切りで値にカンマが入るときの考え方は列数が合わない原因で整理している。
変換するとき
区切り文字を一括置換するだけでは危険だ。
引用された値の中にも同じ文字が含まれる可能性があるため、対応するパーサーで読み、正しいCSVとして書き出す。
「全部1列になる」症状が出たら、最初に区切り文字を確認する。それだけで原因が数秒で見つかることがある。