トップ «前の日記(2011-05-01) 最新 次の日記(2011-05-03)» 編集

2011-05-02 [長年日記]

_ 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 で文字コードを変換してある。

Tags: CSV Ruby