csv rfc4180 data-formats excel standards

CSV形式標準:データポータビリティのためのRFC 4180マスターガイド

CSVは簡単だと思っていませんか?引用符、改行、カンマを異なるプラットフォームで正しく扱うためのRFC 4180のルールを学びます。

2026-04-11

CSV形式標準:データポータビリティのためのRFC 4180マスターガイド

CSV (Comma-Separated Values) は、最も古く、最も一般的なデータ交換フォーマットの一つです。しかし、何十年もの間、正式な定義が欠けていたため、あるアプリケーションで作成したファイルが別のアプリケーションで正しく開けないという「CSV地獄」が続いてきました。そこで登場したのが、公式なCSV標準に最も近い RFC 4180 です。

RFC 4180 とは?

2005年に公開された RFC 4180 (Common Format and MIME Type for CSV Files) は、相互運用性を向上させるための正式な仕様を提供しています。これはCSVファイルの構造と text/csv MIMEタイプを定義しています。

多くの開発者はCSVを単なる「カンマ区切りのテキスト」と考えていますが、RFC 4180は以下のような複雑なケースのルールを明確にしています:

  • フィールド内にカンマが含まれる場合。
  • フィールド内に改行が含まれる場合。
  • フィールド内にダブルクォートが含まれる場合。

RFC 4180 の核心原理

1. レコードの区切り

各レコード(行)は、改行コード (CRLF) で区切られた別々の行にある必要があります。

field1,field2,field3[CRLF]

2. ヘッダー行

オプションとして、ファイルの最初の行にデータレコードと同じ構造を持つヘッダー行を置くことができます。

3. 特殊文字の扱い

ここが多くの実装で失敗するポイントです。RFC 4180は次のように規定しています:

  • カンマ: フィールド内にカンマが含まれる場合、そのフィールドはダブルクォートで囲む 必要があります
  • ダブルクォート: フィールド内にダブルクォートが含まれる場合、そのフィールドはダブルクォートで囲む 必要があり、フィールド内のダブルクォート自体は、その前にもう一つのダブルクォートを付けてエスケープする必要があります。
  • 改行: フィールド内に改行 (CRLF) が含まれる場合、そのフィールドはダブルクォートで囲む 必要があります

例: He said, "Hello" という値を表すには、CSVフィールドは "He said, ""Hello""" となります。


実践的な活用シーン

Excelへのデータエクスポート

Microsoft Excelは、地域設定(ヨーロッパの一部ではカンマの代わりにセミコロンを使用するなど)によって動作が変わることで知られています。RFC 4180に従うことで最大限の互換性が確保されますが、ExcelのバージョンによってはUTF-8エンコーディングを正しく認識させるために「BOM (Byte Order Mark)」が必要になる場合があります。

データ移行

データベース間(例:PostgreSQLからMySQL)でデータを移動する際、RFC 4180準拠のCSVパーサーを使用することで、句読点や複数行の記述を含むテキストフィールドのデータ破損を防ぐことができます。

APIインポーターの構築

アプリケーションでCSVアップロードを受け付ける場合、パーサーは厳密にRFC 4180に準拠している必要があります。単に最初のカンマで分割するのではなく、「クォートされた」フィールドを正しく処理するようにします。


データ交換における CSV vs. JSON

特徴 CSV (RFC 4180) JSON
可読性 人間に優しい(表形式) 機械に優しい(入れ子構造)
ファイルサイズ 非常に小さい 普通(メタデータのオーバーヘッド)
構造 フラット(行/列) 階層的(オブジェクト/配列)
ストリーミング 非常に容易 比較的複雑

よくある質問 FAQ

Q: RFC 4180でセミコロン (;) を区切り文字として使えますか?
A: いいえ。定義上、RFC 4180はカンマ (,) を使用します。セミコロンの使用は一部の地域で見られるバリエーションですが、RFC 4180標準には準拠していません。

Q: 文字エンコーディングはどう扱えばいいですか?
A: RFC 4180はエンコーディングを厳密に規定していませんが、現代では UTF-8 が事実上の標準です。UTF-8を使用する場合、ファイルの先頭にBOMを追加すると、Excelなどの古いアプリケーションがエンコーディングを認識しやすくなります。

Q: カンマの前後にスペースを入れてもいいですか?
A: RFC 4180では、スペースはフィールドの一部と見なされ、無視すべきではないとされています。field1, field2 は、2番目のフィールドの先頭にスペースが含まれていることになります。


関連ツール