1. CSV的全稱是叫Comma Separated Value
2. CSV的MIME類型是text/csv
3 CSV文件中的每一行數(shù)據(jù),作為一行記錄,也就是一個(gè)條目(99%的情況,排除有些換行數(shù)據(jù),下面會(huì)提到)
4. CSV文件的每一行數(shù)據(jù)后面跟著(回車+換行符)即CRLF,但有些資料中也提到了單個(gè)CR或者LF均可,但標(biāo)準(zhǔn)rfc文檔中用到的是CR+LF
5. 文件第一行可以是標(biāo)題行,這個(gè)用到的不多
6. 每行數(shù)據(jù)中,每個(gè)字段之間均必須用半角逗號(hào)comma進(jìn)行分隔,這也是為什么叫Comma Separated的來由,如果有標(biāo)題行,那么標(biāo)題之間也使用逗號(hào)分隔
7 每行的最后一個(gè)字段后應(yīng)該只有CRLF,不應(yīng)該再有逗號(hào)
8. 最后一行后面可以不加CRLF
9. 在逗號(hào)分隔開的每個(gè)字段中,前面的空白和后面的空白會(huì)被忽略,但單個(gè)字段內(nèi)部的空白會(huì)被保留,例如, aaa, bbb bbb ,ccc 我們看到有三個(gè)字段,其中第二個(gè)字段前面,中間,后面均有空白,但CSV解析器應(yīng)該只保留中間的空白,即bbb bbb,類似于Java中的trim方法
10. 如果某個(gè)字段中間有回車換行之類的字符,可以用雙引號(hào)來引用,例如:
- "aaa","b CRLF
- bb","ccc" CRLF
- zzz,yyy,xxx
那么可以判斷出第二個(gè)字段之間內(nèi)部存在一個(gè)回車換行符,由于使用雙引號(hào)分隔,他們b 和 bb 被鏈接成一個(gè)字段
11. 字段本身推薦使用雙引號(hào)來引用,但MS的excel默認(rèn)是不會(huì)對(duì)字段加" "的
12. 轉(zhuǎn)義字符逗號(hào)(,),當(dāng)字段中存在逗號(hào)是,是必須要將這個(gè)字段用""引用起來的
13. 轉(zhuǎn)移字符雙引號(hào)("),當(dāng)字段中存在雙引號(hào)時(shí),必須連續(xù)用兩個(gè)雙引號(hào)來進(jìn)行轉(zhuǎn)義
轉(zhuǎn)自:http://xinglu./blog/1167826