CSV(Comma Separated Values, カンマ区切りテキスト)について調べていたんですが、正式な規格はないんでしょうか?
日本工業標準調査会のJIS検索で、JIS規格の中をざっと検索してみたんですが、見当たりませんでした。
IEEEやANSIあたりに正式な規格がありそうな気がしますが※、英語は拾い読み程度しかできないので……
とりあえず、ネット上にあったいろんなドキュメントによると、以下のようなもののようです。
文字コードの規定はないが、通常はASCIIコードが使われる。フィールドはカンマ区切りで、CRでレコードが終わる。フィールド内に制御文字(ASCIIコードで0x20以下の文字)とカンマを含む場合は、ダブルクオート(”)で囲む。NULL文字はダブルクオート2つ(””)。フィールドのデータにダブルクオートが含まれる場合は、ダブルクオートで囲み、データ中のダブルクオートを2つにする。拡張子はcsv。フィールド名は規定されていないが、書くとしたら1レコード目が多い。
ちなみにTSV(Tab Separated Values, タブ区切りテキスト)では、カンマがタブに変わるだけです。
しかし、今回初めて、データ中にダブルクオートが出てくる場合の処理方法を知りました。
日本語の場合は、無条件でデータにダブルクオートをつけといたほうがいいかも。
ASCIIコード体系で処理するとき、制御文字を含むため、文字化けやバグを引き起こしてしまうので。
(初出:関西どっとコムblog「12月の風霜 :: Snowstorm on December :: for KDC」)
※ 5/15追記
昨年10月に、IETFがRFC4180 Common Format and MIME Type for Comma-Separated Values (CSV) Filesとして初めてCSVについて規定しました。
ただし、カテゴリは標準規格(Standard Track RFC)ではなく、情報提供(Informational RFC)です。
日本語に翻訳された方がいらっしゃるので、詳しくはそちらを参照してください。
笠井家「CSVファイルの一般的書式 (RFC4180 日本語訳)」
→http://www.kasai.fm/wiki/rfc4180jp