CSV形式の「”」の扱い

CSV形式の「”」の扱いCSV形式では、データ中の「”」(ダブルクォーテーション)が、「””」に置き換わって表記・保存されます。

これは、CSV形式では各データ(Excelのセル1個ぶんの情報)が「”」で囲まれる※ため、「”」がエスケープ文字になるからです。

  ※つまり、CSV形式では 1行分のデータの集合が、「”abc”,”def”,”ghi”」になっている。

CSV形式のデータを Perlで扱う際に、データ区切りを「”」と「”,”」を目印に実施している(つまり、「abc“,”def“,”ghi」のアンダーライン部分に着目する)と、データ中の「””」で処理がエラーになったり、間違ったデータ区切りになってしまいます。

CSV形式のデータを元にHTMLなどの生成する場合には、次のような前処理が必要です。ここで、注意すべきは、赤太字部を忘れないことです。

foreach $ele ( @a ) {
$ele =~ s|\r?\n||g; # 改行を除く
$ele =~ s|”””,|"”,|g;
$ele =~ s|,”””|,”"|g;

$ele =~ s|””|"|g;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です