跳至主要內容
FreeOnlineTools Go
繁體中文
比較

CSV 與 TSV:您應該使用哪種分隔符號格式?

作者:{author} · 更新日期:2026-09-02

快速解答

使用 CSV 進行通用資料交換、電子表格匯入/匯出和最大相容性。當資料包含逗號但不包含製表符時,請使用 TSV ,以避免引用和轉義複雜性。 TSV 在生物資訊學和 NLP 中很常見; CSV 是表格資料的通用預設值。

介紹

CSV(逗號分隔值)和 TSV(製表符分隔值)是表格資料的兩種純文字格式。兩者都將行儲存為帶有由分隔符號分隔的欄位的行。 CSV 使用逗號; TSV 使用製表符。分隔符號的選擇會影響轉義、與電子表格應用程式的相容性以及包含分隔符號的文字欄位的處理。

步步

  1. 比較分隔符號和轉義符

    CSV 使用逗號。如果欄位包含逗號,則必須以引號引起來:「Smith, John」。如果欄位包含引號,則必須對其進行轉義:「He said 」「hello」」」。 TSV 使用製表符。製表符很少出現在文字資料中,因此 TSV 欄位通常不需要引用或轉義 - 更簡單的解析。

  2. 比較相容性

    CSV 得到普遍支持:Excel、Google Sheets=Sheets、每種資料庫、每種程式語言。 TSV 也得到了廣泛支持,但標準化程度較低——一些工具對選項卡的解釋不同。 Excel 會自動偵測兩者,但 CSV 是預設匯出格式。

  3. 比較解析複雜度

    CSV 解析需要狀態機來處理參考規則(RFC 4180)。 TSV 解析很簡單:用製表符分割每一行。這使得 TSV 的解析速度更快且更不容易出錯。然而,CSV 有一個正式的規範(RFC 4180); TSV 沒有正式標準。

  4. 比較用例

    CSV:電子表格匯入/匯出、資料APIs、ETL管道、設定檔、通用資料交換。 TSV:生物資訊學(BLAST、GFF)、NLP(CoNLL 格式)、剪貼簿資料(從 Excel 複製 = TSV)、帶有製表符分隔符號的日誌檔案。

  5. 根據您的數據做出決定

    如果您的資料包含逗號(名稱、地址、句子):TSV 避免引用。如果您的資料包含製表符(在文字中很少見):CSV 避免引用。如果您需要最大相容性:CSV。如果您想要更簡單的解析且您的資料是無製表符的:TSV。

範例

CSV 和 TSV 中的資料相同

輸入: CSV: 姓名、年齡、城市\n"史密斯,約翰",30,"紐約,紐約"\nTSV: 姓名\tage\tcity\n史密斯,約翰\t30\t紐約,紐約

輸出: CSV 需要用逗號對欄位進行引號。 TSV 不需要引用,因為製表符不會出現在資料中。

常見問題

  • CSV 引用邊緣情況:包含逗號、引號或換行符的欄位需要 RFC 4180 引用規則 - 用逗號進行天真的分割會破壞嵌入逗號的資料。
  • TSV 沒有正式標準:與 CSV (RFC 4180) 不同,TSV 沒有官方規範,因此工具可能會以不同方式處理邊緣情況 - 僅在受控管道內使用 TSV。
  • Excel 編碼問題:Excel 可能會使用 BOM 或區域設定特定的分隔符號(歐盟區域設定中的分號)匯出 CSV — 指定 UTF-8 編碼並在匯入時驗證分隔符號。
  • 換行符歧義:嵌入換行符的 CSV 欄位有效,但會破壞逐行解析 - TSV 很少出現此問題,因為製表符在文字資料中並不常見。

提示

  • 使用 CSV 以獲得最大相容性 - 每個電子表格、資料庫和程式語言都原生支援它。
  • 當您的資料包含逗號但不包含製表符(名稱、地址、句子)時,請使用 TSV 以避免完全引用複雜性。
  • 始終使用正確的 CSV 解析器(不是 string.split)來處理 RFC 4180 引用規則 - 天真的分割會破壞帶有嵌入逗號或引號的欄位。
  • 將資料從 Excel 複製到文字編輯器時,剪貼簿使用 TSV 格式 — 貼上到 .tsv 檔案中以正確保留帶有逗號的欄位。

相關工具

相關指南

參考