关于淘宝CSV格式的研究

关于淘宝CSV格式的研究

原贴地址:http://www.cnblogs.com/hackpig/archive/2010/02/14/1668222.html

CSV即Comma Separate Values,这种文件格式经常用来作为不同程序之间的数据交互的格式。 
           经过二进制代码的分析,具体文件格式规则如下:

  • 每条记录占一行
  • 以逗号为分隔符,淘宝以TAB为分隔符
  • 逗号前后的空格会被忽略
  • 字段中包含有逗号,该字段必须用双引号括起来
  • 字段中包含有换行符,该字段必须用双引号括起来
  • 字段前后包含有空格,该字段必须用双引号括起来
  • 字段中的双引号用两个双引号表示
  • 字段中如果有双引号,该字段必须用双引号括起来
  • 第一条记录,是字段名

        以上是通行规则,经研究发现,淘宝CSV在文头部加有标志FF FE,这两个字节如果不存在,文件读出来全部为乱码(后注1)。 
        然而这一点现象并没有在有啊CSV文件中发现,拍拍CSV则暂没研究过。 
        其它还有几点比较特殊的地方:

  • 如果某个字段没有值(为空),淘宝CSV中表示为TAB
  • 淘宝CSV文字编码为Unicode_2LE编码,这一点与有啊CSV是不一样的。

后注1: 文件头部有FF FE,这个称为文件的BOM信息,不同编码的BOM信息是不一样的。

Unicode {0xFF, 0xFE}; 
BE-Unicode {0xFE, 0xFF}; 
UTF8 = {0xEF, 0xBB, 0xBF};

这些知识也是猪悟能后来才知道的,特此标注一下。具体写入文件时加入BOM信息的方法可以参考下面的文章:

彻底解决.net中编码问题的心得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值