CSVは誰かがフォーマットを厳密に定義してるわけでないので、認識相違が多めです。
以下のような部分を考えましょう。
ポイント | 例 | メモ |
---|---|---|
改行コード |
|
CRLFが無難。 |
文字コード |
|
WindowsでもUTF-8がおすすめ。 UTF-8が主流だからというのは当然として、特にVistaからJIS第三第四水準文字がUnicodeで入力できるので入力値に存在する可能性がある。 文字コード決めの考慮点
|
区切り文字 |
|
項目にカンマが含まれる可能性があるのでタブのほうがおすすめ。 またスプレッドシートではタブの方が扱いやすいのもポイント。 |
ヘッダー |
|
合意しておくこと。あったほうが内容確認時に便利 |
途中の空行 |
|
プログラム上でおかしくなる可能性 |
最終行 |
|
プログラム上でおかしくなる可能性 |
項目内改行 |
|
なるべくなしにしたい。ありの場合で Excelを使ったとき、項目内改行の改行コードはCRである。 |
空データ |
|
CSVというより一般常識。あとファイル作るか作らないかも。ヘッダーも注意。 |
記号、制御文字 |
|
これも常識 |
ユーザーがExcelでみたり操作するか |
|
様々なExcelトラップがある。0はじまり文字列の0が表示上消えたり、勝手に日付として解釈したり。 そのためユーザーに良い開き方を教えたり項目内容を工夫したりする必要がある。 |
項目をダブルクオートでくくるか |
|
くくる場合はさらに考える事が
|
ファイルは結合度が高く、データ連携としては原始的です。
そもそもCSVで渡す必要性を考えつつ、素直に作りましょう。