CSV格式使用逗号分隔值,包含回车符,换行符,逗号或双引号的值用双引号括起来。包含双引号的值被引用,并且每个文字引号都被紧接的前面的引号转义:例如,3个值:
test
list, of, items
"go" he said
将被编码为:
test
"list, of, items"
"""go"" he said"
任何字段都可以被引用,但只有包含逗号,CR / NL或引号的字段必须被引用。
CSV格式没有真正的标准,但几乎所有的应用程序都遵循这里记录的约定。在其他地方提到的RFC不是CSV的标准,它是在MIME中使用CSV的RFC,并包含一些非常规和不必要的限制,使其在MIME之外无用。
我见过的很多CSV模块都不能容纳的一个问题是,多行可以在单个字段中编码,这意味着您不能假定每行都是单独的记录,您可能不需要在您的数据或准备处理这个
于2017年,csv完全指定 - RFC 4180。
这是一个非常常见的规范,并被许多库(例子)完全覆盖。
只需使用任何容易获得的csv库 - 也就是说RFC 4180。
实际上有一个CSV格式的规范,以及如何处理逗号:
包含换行符(CRLF),双引号和逗号的字段应用双引号括起来。
http://tools.ietf.org/html/rfc4180
所以,有价值观foo和bar,baz,你这样做:
foo,"bar,baz"
另一个需要考虑的重要要求(也来自规范):
如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在另一个双引号之前进行转义来进行转义。例如:
"aaa","b""bb","ccc"