CSV フォーマット解説 + よくある問題
更新 2026-07-06
CSV はスプレッドシートとデータ書き出しの万国共通語です — テキストエディタで開けるほど単純で、表形式データを扱うあらゆるツールが対応します。しかしその単純さは、きれいな書き出しをぐちゃぐちゃにする、驚くほどよくある落とし穴をいくつか隠しています。CSV が実際にどう動くか、そしてよくある問題の避け方を紹介します。
CSV とは
CSV は comma-separated values(カンマ区切りの値) の略です。各行が 1 行(レコード)で、行の中ではカンマが列を区切ります。最初の行はたいてい各列に名前を付けるヘッダーです。
name,email,age Ada Lovelace,ada@example.com,36 Alan Turing,alan@example.com,41
これで全部です — そしてまさにそれゆえにエッジケースが噛みつくのです。
よくある問題
値の中のカンマ
値そのものがカンマを含んでいたら、たとえば Lovelace, Ada のように? 規則がなければ、その 1 つのフィールドが 2 つの列に見えてしまいます。対処: カンマを含むフィールドを二重引用符で囲みます。
"Lovelace, Ada",ada@example.com,36
値の中の引用符
引用符で囲んだフィールド内の二重引用符は、それを重ねてエスケープします: "She said ""hi""" は She said "hi" を表します。
値の中の改行
フィールドは引用符で囲めば改行さえ含められます — だから CSV を手でパースするとき「1 行 = 1 レコード」と常に仮定はできません。
区切り文字は必ずしもカンマではない
カンマが小数点区切りである地域では、スプレッドシートはしばしばセミコロン(;)やタブで代わりに書き出します。ファイルが 1 つの大きな列として開くなら、たいてい区切り文字の不一致が原因です。
エンコーディングと BOM
CSV はエンコーディング情報を持たないため、読む側が誤って推測するとアクセント付き文字が化けることがあります — UTF-8 で保存しましょう。一部のプログラムは先頭に見えないバイト順マーク(BOM)を付け加え、これが最初の列ヘッダーを壊すことがあります。(理由は 文字エンコーディング のガイドを参照。)
CSV データを扱う
CSV はただのテキスト行なので、プレーンテキストのツールが多くの整理をこなします: 行の並べ替え ツールで行を順に並べ、重複行の削除 で繰り返しを取り除き、テキスト差分 で 2 つの書き出しの間で何が変わったかを正確に確かめましょう。構造的な変換には、データをまず JSON に変える方がきれいな道であることが多いです。
データフォーマット & エンコーディング をもっと見る
データフォーマット & エンコーディング のガイドをすべて見る →このガイドで触れたツール