你能将CR / LF编码成CSV文件吗?

时间:2009-02-19 16:18:15

标签: csv

以某种方式将CR / LF字符编码为CSV文件是否可行/合法?

(作为CSV标准的一部分?)

如果是这样我应该如何编码CR / LF?

4 个答案:

答案 0 :(得分:65)

是的,你需要用引号括起来:

"some value
over two lines",some other value

来自this document,这是普遍接受的CSV标准:

  

包含嵌入式的字段   换行必须包围   双引号

答案 1 :(得分:12)

最常见的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阅读器可能会非常棘手(特别是如果您依赖正则表达式)。

答案 2 :(得分:7)

这里提到了CSV的标准。我有兴趣了解更多相关信息 - 我所知道的唯一标准是

答案 3 :(得分:0)

我不认为它是标准的一部分(如果有的话),但你可以使用标准的C风格转义,即编码\ r \ n。

但请记住,如果你这样做,你还应该编码转义字符 - 即解码后的\ yield \。