将CR/LF字符编码到CSV文件中是否可能/法律的?(as CSV标准的一部分?)如果是,我应该如何编码CR/LF?
mwecs4sa1#
是的,您需要用引号括起来:
"some value over two lines",some other value
本文档是普遍接受的CSV标准:包含换行符(CRLF)、双引号和逗号的字段应括在双引号中
ryevplcw2#
最常见的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阅读器可能会很棘手(特别是如果你依赖于正则表达式的话)。
yfwxisqw3#
这里已经提到了CSV的标准。我很想知道更多关于这个的信息-我知道的唯一标准是
kse8i1jr4#
我不认为这是标准的一部分(如果有的话),但是你可以使用标准的C风格转义,即编码\r\n。但是,请记住,如果这样做,还应该对转义字符进行编码--即\\在解码后生成\。
\r\n
\\
\
4条答案
按热度按时间mwecs4sa1#
是的,您需要用引号括起来:
本文档是普遍接受的CSV标准:
包含换行符(CRLF)、双引号和逗号的字段应括在双引号中
ryevplcw2#
最常见的CSV变体是Excel兼容的,它允许嵌入换行符,只要字段用双引号括起来。
或
或
都是有效的。此机制也允许内嵌逗号。
在文本字段周围使用引号而不嵌入新行(或逗号)也是可以的。例如,如果文本本身包含双引号,那么转义它的机制是将两个引号放在一起。
编写一个正确处理这个问题的csv阅读器可能会很棘手(特别是如果你依赖于正则表达式的话)。
yfwxisqw3#
这里已经提到了CSV的标准。我很想知道更多关于这个的信息-我知道的唯一标准是
kse8i1jr4#
我不认为这是标准的一部分(如果有的话),但是你可以使用标准的C风格转义,即编码
\r\n
。但是,请记住,如果这样做,还应该对转义字符进行编码--即
\\
在解码后生成\
。