CSV
読み:スィーエスヴィー
外語:CSV: Comma Separated Value

 カンマ区切り値。
目次

概要
 データベース表計算ソフトウェアデータを、テクストファイルとして記録する方式の一つ。
 項目(フィールド)をカンマで区切り、レコードを改行(CRLF)で区切る。1行が1レコードとなり、1ファイルがデータベースの1テーブルとなる。
 様々な実装があったが、2005(平成17)年10月にRFC 4180がInformationalとして公開されている。

特徴

機能
 殆どのデータベースや表計算ソフトウェアが対応する事実上の標準交換フォーマットであり、デファクトスタンダードである。
 但し、項目の属性などを保存する機能はない。保存されるのは実際のデータ内容のみである。

CSVとTSV
 同様のものに、タブコードでフィールドを区切ったタブ区切り値(TSV)がある。区切りが違うだけで、機能は同じである。
 対するTSVよりは断然人気があり、対応処理系も多そうである。しかしTSVが速やかにMIME登録ツリーに登録されたのに対して、CSVはなかなか登録される気配が無かった。
 満を持して登場したRFCによりMIMEタイプ名text/csv」が登録され、その詳細な仕様も規定され、一気に優位に立った(TSVにはRFCがない)。TSV派は今頃、歯軋りして悔しがっていることだろう。たぶん。

書式
 RFC 4180の仕様では基本的に、次のように格納される。(CRLF)は改行文字とする。
 AAA,BBB,CCC(CRLF)
 DDD,EEE,FFF(CRLF)
 特殊な機能が与えられた文字は一種類のみで、"である。改行文字や、カンマ文字、"そのものを表わすときは、次のようにする。
 「AAA改行AAA」と「B,B」を表わすには、次のように"で括って書かれる。
 "AAA(CRLF)
 AAA","B,B"(CRLF)
 "文字そのものは、""として記述する。
 "AAA","B""BB","CCC"

変種と実装のゆれ
 RFCが書かれる前の実装は、その実装により様々な動作をすることがある。
 例えば、文字列は常に"で囲み「文字列型」とし、"のない数列は「数値型」として読み取る、という実装をした処理系もある。これで、CSVには本来ない項目の属性も、二種類だが保存できることになる。
 Microsoft Excelは、読み込みの際に利用者に選ばせる。基本的に数値として解釈可能なものは数値とし、"の囲みの有無で動作が変化することはない。

再検索