【发布时间】:2010-10-08 15:21:13
【问题描述】:
以某种方式将 CR/LF 字符编码到 CSV 文件中是否可能/合法?
(作为 CSV 标准的一部分?)
如果是这样,我应该如何编码 CR/LF?
【问题讨论】:
标签: csv
以某种方式将 CR/LF 字符编码到 CSV 文件中是否可能/合法?
(作为 CSV 标准的一部分?)
如果是这样,我应该如何编码 CR/LF?
【问题讨论】:
标签: csv
是的,你需要用引号括起来:
"some value
over two lines",some other value
来自this document,这是公认的 CSV 标准:
包含换行符 (CRLF)、双引号和逗号的字段应该用双引号括起来
【讨论】:
这里提到了 CSV 的标准。我有兴趣了解更多相关信息 - 我知道的唯一标准是
excel 接受什么
【讨论】:
最常见的 csv 变体是与 excel 兼容的变体,只要字段用双引号括起来,就允许嵌入换行符。
foo,bar,"blah blah
more blah blah",baz
或
foo,bar,"blah blah
more blah blah"
或
"blah blah
more blah blah",baz
都是有效的。这种机制还允许嵌入逗号。
在没有嵌入新行(或逗号)的文本字段周围使用引号也可以。例如,如果文本本身包含双引号,则转义它的机制是将两个放在一起。
foo,bar,"this person said ""blah blah
more blah blah""",baz
编写正确处理此问题的 csv 阅读器可能会很棘手(尤其是在您依赖正则表达式的情况下)。
【讨论】:
我认为它不是标准的一部分(如果有的话),但您可以使用标准的 C 样式转义,即编码 \r\n。
但是请记住,如果您这样做,您还应该对转义字符进行编码 - 即解码后 \ 产生 \。
【讨论】: