FileHint

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 で変換するのが確実。

出典