zoukankan      html  css  js  c++  java
  • 关于淘宝CSV格式的研究

    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中编码问题的心得

  • 相关阅读:
    用例图解析
    A B C D类网络地址
    B-树特征
    常用的中间代码
    UML图
    关于文件索引的一道习题
    数据流图的一些原则
    系统总线
    各种排序方法的时间复杂度、空间复杂度和稳定性统计表
    模拟银行自助终端系统
  • 原文地址:https://www.cnblogs.com/scgw/p/2497880.html
Copyright © 2011-2022 走看看