分類
資料品質提升機制說明文件
-
每一行都以 CRLF(\r\n or %x0D %x0A) 為結尾,但現在大部份的 implementation 都允許只用LF當結尾。
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF -
最後一行可以不用結尾字元。
aaa,bbb,ccc CRLF
zzz,yyy,xxx -
每一行都需以「半形逗點」做分隔,每一行的欄位數量都需一樣。逗點間的空白也是欄位內容的一部份。每行的最後一欄不需有分隔逗點。
aaa,bbb,ccc -
每一欄(column field) 都可以用雙引號字元括起來,如果欄位內要出現雙引號字元,那麼一定要用雙引號括住內容,需注意的是,用來刮住欄位值的雙引號字元需緊跟在逗點之後出現,也就是說雙引號和逗點之間不能有空格,否則解譯器會把這欄位當成沒有雙引號括住的欄位值,但內容出現雙引號字元違反了規範,造成格式錯誤。MS-Excel 嚴格遵守這個規範,但 Libre Office 就容許這個空白的出現。
“aaa”,“bbb”,“ccc” CRLF
zzz,yyy,xxx -
欄位值內可以出現換行字元(CR, LF, or CRLF),此時欄位值需以雙引號括住。
“aaa”,“b CRLF
bb”,“ccc” CRLF
zzz,yyy,xxx -
如果欄位值內出現雙引號,那麼這個欄位值需以雙引號括住,且欄位內的雙引號字元前面要多加一個雙引號。
“aaa”,“b”“bb”,“ccc”
工具
- Online validation tool :http://www.parse2.com/example-csv-RFC4180.shtml、http://csvlint.io/
- Offline validation tool:https://github.com/Clever/csvlint
- PHP lib:https://github.com/parsecsv/parsecsv-for-php
參考