CSV と TSV の違い — 結局どちらを使うべきか
カンマ区切りの CSV とタブ区切りの TSV。データ本文にカンマやダブルクオートが入るかどうかで使い分けるのが実務的な判断軸です。
結論から
- データ本文に「,」や改行が頻出する → TSV
- Excel で直接開きたい / 配布先が CSV 前提 → CSV
- SQL などのスクリプトに流したい → TSV が扱いやすい
主な違い
| 項目 | CSV | TSV |
|---|---|---|
| 区切り文字 | カンマ , |
タブ \t |
| 本文中のカンマ | ダブルクオートで囲む必要あり | そのまま使える |
| Excel ダブルクリック | 開く | 開くが列が崩れることも |
| 規格 | RFC 4180 | IANA text/tab-separated-values |
CSV の弱点
- 文字列中のカンマ・改行・ダブルクオートを正しくエスケープしないとパース失敗。
- Shift_JIS / UTF-8 の文字コード切替がアプリごとに異なり、日本語で事故が起きやすい。
TSV の弱点
- Excel で開いた際、地域設定によっては区切りとして認識されず、1 列に流れ込むことがあります。
- タブ文字そのものが本文に含まれる場合はエスケープ規則がなく、純粋な TSV では扱えません。
変換
- CSV → TSV:
cat file.csv | tr ',' '\t' > file.tsvは単純なデータでのみ安全です。ダブルクオート囲みがあるならcsvkitなどに任せる。 - TSV → CSV: 同じく
csvkitで変換するのが確実。