FasterCSVでの改行の扱いメモ
日本語で改行入りのデータにうまく対応できるだろうか。以下、FasterCSV 1.5.3 で実験。
まとめ
FasterCSV は改行コードは LF でも CRLF でもどちらでも良い。レコードセパレータとしてもセル内の改行としてもどちらでも良い。ただし、当然セルは " " で囲まれていないとダメ。
実験
OOo calc のデータ
RS | LF |
セル内改行 | LF |
大丈夫。
全部CRLFのデータ
作ってみた。
RS | CRLF |
セル内改行 | CRLF |
問題なし。
Excelを想定して
Windows の Excel が手元になかったので教えてもらった通りにデータを作成してみた。
文字コード | Shift JIS |
RS | CRLF |
セル内改行 | LF |
全体を LF にしたあとに行末だけ CR を付加した。
問題なし。
結果
FasterCSV は文字コードが UTF-8 なら改行コードは LF, CRLF のどちらでもよい。これはレコードセパレータとしてもセル内の改行としてもどっちを使っても良いという意味。セルが " " で囲まれていればその外の改行をレコードセパレータと解釈してくれる。
改行を含んでいるのに " " で囲んでいない場合は Malformed CSV になる。
Shift JIS のデータはそもそも食えないので与える際に NKF で文字コードを変換してある。