きゃらりこ日誌

CSVの規格書はどこ?

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