csv文件解读

基本规则

CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符。字段包含特殊字符(逗号,换行符,或双引号),必须以双引号括住。行内包含一个项目是空字符串,可以以双引号括住。字段的值包含双引号时,要双写这个双引号(就像把一个双引号当做转义符一样)。CSV文件格式并不需要特定的字符编码,字节顺序,或行终止格式。
  • 每个记录是一个行终止了换行符(
    ASCII码/低频= 0×0A)或回车换行符和一双(ASCII码/ CRLF = 0×0D0×0A),然而,线路中断可以嵌入。
  • 字段用逗号分隔(虽然地点在逗号作为小数点,分号是用来代替作为定界符)
1997,Ford,E350
  • 在某些的CSV实施,领导和尾随空格或制表符,毗邻逗号,装饰。这种做法是有争议的 , 实际上是明文禁止的RFC 4180,其中规定,“被认为是空间的一个组成部分领域 , 而不应被忽视。”
  • 各领域内的嵌入式逗号必须存放在双引号字符。
  • 各领域内的嵌入式双引号字符必须是封闭的双引号字符,每一个嵌入式双引号字符必须用一对双引号字符。
  • 各领域内的嵌入式换行符必须封闭在双引号字符。
  • 领域的前导或尾随空格内必须封闭双引号字符。 (见评论领导和尾随
    空格以上。)
  • 字段可能永远是封闭的双引号字符,是否有必要或没有。
  • 第一条记录中的CSV文件中可能包含列名的每个领域。


举例说明

制造商
型号
说明
价值
1997
Ford
E350
ac, abs, moon
3000.00
1999
Chevy
Venture “Extended Edition”
 
4900.00
1999
Chevy
Venture “Extended Edition, Very Large”
 
5000.00
1996
Jeep
Grand Cherokee
MUST SELL!

  air, moon roof, loaded
4799.00
上面表格内容若以CSV格式表示就会像下列:
年,制造商,型号,说明,价值
1997,Ford,E350,”ac, abs, moon”,3000.00

  1999,Chevy,”Venture “”Extended Edition”””,””,4900.00

  1999,Chevy,”Venture “”Extended Edition, Very Large”””,””,5000.00

  1996,Jeep,Grand Cherokee,”MUST SELL!
air, moon roof, loaded”,4799.00
以上这个CSV的例子说明了:
  • 包含逗号, 双引号, 或是换行符的字段必须放在引号内.
  • 字段内部的引号必须在其前面增加一个引号来实现文字引号的转码.
  • 分隔符逗号前后的空格 
    可能不会 被修剪掉. 这是RFC 4180的要求.
  • 元素中的换行符将被保留下来.
    [1]
     

标签