私はFasterCSV(1.5.0)でCSV解析の問題を発見したを使用して解析するが、私はのための回避策はあります願っていたとの基本的な問題を克服します。CSVは、本物のバグのように思えるFasterCSV宝石
フィールドが引用符で囲まれている場合、基本的に区切り記号(私の場合はコンマ)の後にスペースを追加すると、MalformedCSVError
が生成されます。
ここでは簡単な例です:
# No quotes on fields -- works fine
FasterCSV.parse_line("one,two,three")
=> ["one", "two", "three"]
# Quotes around fields with no spaces after separators -- works fine
FasterCSV.parse_line("\"one\",\"two\",\"three\"")
=> ["one", "two", "three"]
# Quotes around fields but with a space after the first separator -- fails!
FasterCSV.parse_line("\"one\", \"two\",\"three\"")
=> FasterCSV::MalformedCSVError: Illegal quoting on line 1.
アム私は怒っ行く、またはこれはFasterCSVのバグですか? col_sep:
フィールドは、実際に(最初の文字が引用符ではないので)、引用符で囲まれた引用符は、フィールドの内容の一部として取られるべきであるとされていないことを言った空間ではないですか? –
私は間違っているように見えます。 "フィールドが二重引用符で囲まれていない場合は、二重引用符がフィールド内に表示されないことがあります。 - http://tools.ietf.org/html/rfc4180#section-2 –
あなたは正しいです、私はCSVのための 'スペック'があることを認識しませんでしたが、それがあるようです。より速いCSVは確かに非常に厳格です。 – Olly