CSVとTSVの違い|区切り文字・クォート・文字コードと使い分けを解説
CSVとTSVは、表形式のデータをテキストで保存するよく似た2つの形式です。本記事では「何が違うのか」を区切り文字から説明し、値にカンマや改行を含むときのクォート処理、文字コードの落とし穴、ExcelでのCSV取り込みの注意、TSVが便利な場面、そしてJSONとの比較までやさしく解説します。
表計算ソフトからデータを書き出したり、システム間でデータを受け渡したりするとき、よく目にするのがCSVとTSVです。どちらも「表をテキストで表したファイル」で見た目も似ていますが、区切り文字や値の扱いに違いがあり、場面によって向き不向きがあります。本記事では、両者の違いを区切り文字から順に解説し、文字化けや取り込みミスを防ぐコツ、さらにJSONとの比較までを整理します。
CSVとTSVとは何か
CSV(Comma-Separated Values、カンマ区切り値)とTSV(Tab-Separated Values、タブ区切り値)は、いずれも表形式のデータを1行が1レコード、1行の中の各項目を区切り文字で分けるというシンプルなルールで表現するテキスト形式です。プレーンテキストなので、特別なソフトがなくてもメモ帳のようなエディタで中身を確認でき、ほぼあらゆる言語やツールで読み書きできます。
両者の本質的な違いは、項目を区切る文字がカンマ(,)かタブ(→)かという一点に尽きます。たとえば「山田太郎」「東京」「30」という3項目を並べると、CSVなら「山田太郎,東京,30」、TSVなら「山田太郎(タブ)東京(タブ)30」となります。仕組みが単純なぶん、後述するクォートや文字コードといった細部が、実務での扱いやすさを大きく左右します。
実際のファイルがどんな構造になっているかを確かめたいときは、CSVビューアツールに貼り付けて、表として整形された状態で眺めてみると違いがつかみやすいでしょう。
区切り文字の違い:カンマとタブ
CSVとTSVを分ける最大のポイントは区切り文字です。それぞれに長所と短所があります。
| 形式 | 区切り文字 | 主な特徴 |
|---|---|---|
| CSV | カンマ(,) | 対応ソフトが非常に多い。値にカンマを含むと崩れやすい |
| TSV | タブ(\t) | 値にカンマを含んでも安全。タブが見えにくい |
CSVはもっとも普及している形式で、表計算ソフトやデータベース、各種サービスの入出力に幅広く対応しています。一方で、住所や金額、文章などデータそのものにカンマが含まれることは珍しくなく、その場合は区切りと値の区別がつかなくなるため、後述するクォートで囲む対処が必要になります。
TSVは区切りにタブを使います。日本語や英語の文章、住所など、カンマを含みやすいデータでも区切りと衝突しにくいのが利点です。文章中にタブが現れることは少ないため、結果としてシンプルに扱える場面が多くなります。反面、タブは画面上で空白に見えてカンマほど視認しにくく、エディタの設定によってはスペースに変換されてしまう事故もあります。
値にカンマや改行を含むとき:クォート処理
CSVでもっとも事故が起きやすいのが、値そのものに区切り文字や改行が含まれるケースです。たとえば「東京都千代田区,丸の内」のように住所にカンマが入っていると、本来1つの項目が2つに割れてしまいます。
これを防ぐため、CSVにはダブルクォート(")で値を囲むというルールがあります。RFC 4180という事実上の標準仕様では、次のように定められています。
- 値にカンマ・改行・ダブルクォートのいずれかを含む場合、その値全体をダブルクォートで囲む。
- 値の中にダブルクォート自体が現れる場合は、ダブルクォートを2つ重ねて("")エスケープする。
- クォートで囲めば、値の中に改行を含めても1つの項目として扱える。
"東京都千代田区,丸の内","コメント:""重要""です",30
この例では、1つ目の項目はカンマを含むためクォートで囲まれ、2つ目の項目は内部のダブルクォートが2つ重ねでエスケープされています。CSVの読み書きで生じる不具合の多くは、このクォート処理の実装漏れが原因です。自前で単純に「カンマで分割」するだけの処理を書くと、クォート内のカンマまで区切ってしまい、データが崩れます。
一方TSVでは、値にカンマが含まれても区切りはタブなので問題になりません。値にタブや改行が含まれる場合の扱いは仕様が統一されておらず、運用によってはタブや改行を値からあらかじめ取り除く、あるいは別の文字に置き換える方針を採ることもあります。データの中身を整えたうえで取り込みたいときは、CSVビューアツールで実際にどう分割されているかを確認しておくと安心です。
文字コードとExcel取り込みの注意
CSV/TSVはテキストファイルであるため、文字コードの違いが文字化けの大きな原因になります。現在はUTF-8が標準的ですが、日本語環境では従来からのShift_JISのファイルもまだ多く流通しています。受け取ったファイルの文字コードと、開くソフトが想定する文字コードが食い違うと、日本語が文字化けします。
特に注意したいのがExcelでのCSV取り込みです。Excelはダブルクリックでファイルを開くと、環境によってはUTF-8を正しく判別できず文字化けすることがあります。これを避けるには、次のような方法が有効です。
- BOM付きUTF-8で保存する:ファイル先頭にBOMという目印を付けると、ExcelがUTF-8と認識しやすくなる。
- 「データ」タブから取り込む:ダブルクリックではなく、データの取得機能でファイルを指定し、文字コードや区切り文字を明示的に選ぶ。
- 区切り文字を確認する:地域設定によっては、Excelがカンマ以外(セミコロン等)を区切りとして扱う場合がある。
また、電話番号や郵便番号、商品コードのように先頭がゼロの数字は、Excelが数値とみなして先頭のゼロを消してしまうことがあります。長い数字が指数表記(1.23E+11など)に化けることもあります。こうした列は文字列として扱う指定をするか、取り込み時に列の書式を文字列に設定して防ぎます。改行コード(WindowsのCRLFかUnix系のLFか)の違いも、環境によっては余分な空行や読み取りエラーの原因になります。
TSVが便利な場面・使い分け
では、CSVとTSVはどう使い分ければよいのでしょうか。判断の軸はおもに「データにカンマが含まれるか」「相手側が何を期待しているか」です。
TSVが向く場面
住所・氏名・コメント・商品説明など、値にカンマが入りやすいデータを扱うときはTSVが快適です。クォート処理に頼らずとも区切りが崩れにくく、データベースのインポートやログの受け渡しなど、機械的に処理する用途で扱いやすくなります。表計算ソフトのセル範囲をコピーすると、クリップボードには実はタブ区切りで入るため、エディタへの貼り付けと相性が良いのもTSVの実用的な利点です。
CSVが向く場面
取り込み先のソフトやサービスがCSVを前提としている場合や、汎用的に配布したい場合はCSVが無難です。世の中の対応範囲が広く、「とりあえずCSV」で通る場面はまだ多くあります。値にカンマを含むときはクォート処理を正しく行うことが前提になります。
迷ったら、まず相手が指定する形式に合わせるのが基本です。形式を変換したいときは、JSON CSV変換ツールのような変換ツールを使えば、手作業での置換ミスを避けて安全に変換できます。
JSONとの比較
CSV/TSVと並んでデータのやり取りに使われるのがJSONです。三者は得意分野が異なります。
| CSV / TSV | JSON | |
|---|---|---|
| 構造 | 平らな表(行と列) | 入れ子・階層を表現できる |
| サイズ | 軽量で簡潔 | キー名のぶんやや冗長 |
| 表計算との相性 | そのまま開ける | 変換が必要 |
| 用途 | 表形式の一括データ | API・設定・複雑なデータ |
CSV/TSVは、行と列からなる平らな表を表すのに最適です。データが軽く、表計算ソフトでそのまま開けるため、件数の多い一覧データの受け渡しや集計に向きます。反面、1つの項目の中にさらにリストやオブジェクトを持たせるような入れ子構造は苦手です。
JSONは、オブジェクトや配列を入れ子にして階層のあるデータを自然に表現できます。APIのレスポンスや設定ファイルのように構造が複雑なデータに向く一方、表計算ソフトでそのまま開くには変換が必要で、単純な表ではキー名が繰り返されるぶんファイルが大きくなりがちです。
実務では「APIから受け取ったJSONを表計算で集計したい」「表データをJSONに直してプログラムで扱いたい」といった相互変換の場面が頻繁にあります。その際はJSON CSV変換ツールを使うと、構造の対応づけを自動で行え、手作業よりも確実です。CSV・TSV・JSONはどれが優れているという話ではなく、平らな表ならCSV/TSV、階層があるならJSONと、データの形に合わせて選ぶのが正解です。
なお本記事は一般的な情報の提供を目的としたものです。実際のファイル仕様や対応状況はソフトやサービスごとに異なる場合があるため、最新の公式ドキュメントを確認のうえ判断してください。
よくある質問
CSVとTSVの一番の違いは何ですか?
項目を区切る文字が違います。CSVはカンマ(,)で、TSVはタブで区切ります。それ以外の「1行が1レコード」という基本構造は共通です。値にカンマを含みやすいデータではTSVのほうが崩れにくく、汎用的な配布や多くのソフトとの互換性ではCSVが有利です。
値にカンマが含まれるとCSVはどうなりますか?
そのままだと区切りと値の区別がつかず、1項目が複数に割れてしまいます。これを防ぐため、CSVでは値全体をダブルクォート(")で囲みます。値の中にダブルクォートがある場合は2つ重ねてエスケープします。これはRFC 4180という事実上の標準で定められたルールです。
ExcelでCSVを開くと文字化けします。なぜですか?
ファイルの文字コードと、Excelが想定する文字コードが食い違うためです。UTF-8のCSVをダブルクリックで開くと化けることがあります。BOM付きUTF-8で保存する、または「データ」タブの取り込み機能で文字コードを明示して読み込むと回避できます。
CSVとJSONはどちらを使うべきですか?
データの形によります。行と列からなる平らな表ならCSV(やTSV)が軽量で扱いやすく、入れ子や階層のあるデータならJSONが自然に表現できます。APIや設定ファイルはJSON、件数の多い一覧データはCSVが向きます。相互に変換して使い分けるのが一般的です。
CSVビューアやJSON CSV変換ツールにアップロードしたデータは安全ですか?
WAZA TOOLSのCSVビューアやJSON CSV変換ツールはすべてブラウザ内で処理され、貼り付けたデータがサーバーに送信・保存されることはありません。スマートフォンでも利用でき、何度でも無料でお使いいただけます。