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

将CR / LF字符编码成CSV文件有可能/合法吗?

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

如果是的话我应该如何编码CR / LF?

是的,你需要用引号包装:

"some value over two lines",some other value 

从这个被普遍接受的CSV标准的文件中:

包含embedded换行符的字段必须用双引号括起来

csv最常见的变种是兼容excel的,只要字段被双引号括起来就可以embedded换行符。

 foo,bar,"blah blah more blah blah",baz 

要么

 foo,bar,"blah blah more blah blah" 

要么

 "blah blah more blah blah",baz 

都是有效的。 这种机制也允许embedded逗号。

围绕没有embedded新行(或逗号)的文本字段使用引号也没关系。 如果文本本身包含一个双引号,那么转义它的机制就是把两个放在一起。

 foo,bar,"this person said ""blah blah more blah blah""",baz 

编写一个正确处理这个问题的csv阅读器可能会很棘手(特别是如果你依赖于正则expression式的话)。

这里已经提到了CSV的标准。 我很想知道更多关于这个 – 我知道的唯一的标准是

  • 无论excel接受

  • RFC在www.rfc-editor.org/rfc/rfc4180.txt

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

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