2026年9月6日日曜日

CSVという「仕様」を、味わう。

味わう仕様書

CSVという「仕様」を、味わう。

カンマと改行だけでは決まらない。 RFC 4180、CRLF、引用符、header、text/csv、Excel。 あまりに身近で、じつは一枚岩ではないCSVを、仕様と実装の間から読んでいきます。

味わう仕様書 CSV

カンマで区切れば、CSV?

CSVは、見ればだいたい分かるほど単純です。 けれど改行を含む値はどうするのか。引用符そのものはどう書くのか。 末尾の改行は必要なのか。1行目はheaderなのか。 RFC 4180を開くと、日常的に使っているCSVの「暗黙の約束」が少しずつ見えてきます。

01 / RECORDS

改行は、ただの改行ではない

RFC 4180が示すCRLF、レコード境界、最終レコードの扱いから、CSVの行構造を見ます。

02 / QUOTES

カンマも改行も、値の中に入る

フィールドを二重引用符で囲む意味と、カンマや改行をデータとして保持する仕組みを追います。

03 / ESCAPE

" は "" になる

引用符を含むフィールドをどう表現するか。短い規則が、パーサの挙動を大きく左右します。

04 / DIALECTS

同じCSVなのに、同じではない

RFC 4180、Excel、各種ライブラリ。現実のCSVが複数の慣行を抱えている理由を見ていきます。

この本で見るもの

RFC 4180
text/csv
record / field
CRLF
header parameter
quoted field
double-quote escaping
ABNF
Excel CSV
CSV dialects

主なテーマ

CSVはいつからCSVなのか
RFC 4180は何を決めたのか
カンマ、改行、引用符
headerとレコードの境界
text/csvというMIMEタイプ
ExcelとCSVの距離
「CSV方言」が生まれるところ

単純な形式ほど、境界がおもしろい。

CSVを書くコードなら、数行で済みます。 でも「何をCSVと呼んでいるのか」を確かめようとすると、 RFC、OSの改行、表計算ソフト、文字コード、ライブラリの実装へ話が広がっていきます。 この本では、その境界を仕様書と実物を往復しながら確かめます。

味わう仕様書 CSV

CSVという「仕様」を、味わう。