Bỏ qua đến nội dung chính
FreeOnlineTools Go
Tiếng Việt
So sánh

CSV và TSV: Bạn nên sử dụng định dạng dấu phân cách nào?

Bởi {author} · Đã cập nhật 2026-09-02

Trả lời nhanh

Dùng CSV cho trao đổi dữ liệu chung, import/export bảng tính và tương thích tối đa. Dùng TSV khi dữ liệu chứa dấu phẩy nhưng không chứa tab, để tránh quoting và escaping. TSV phổ biến trong bioinformatics và NLP; CSV là default phổ quát.

Giới thiệu

CSV (Comma-Separated Values) và TSV (Tab-Separated Values) là hai định dạng plain-text cho dữ liệu bảng. Cả hai lưu hàng as dòng với trường phân tách bởi dấu phân cách. CSV dùng dấu phẩy; TSV dùng ký tự tab. Việc chọn dấu phân cách ảnh hưởng đến escaping, tương thích với bảng tính và xử lý trường văn bản chứa dấu phân cách.

Từng bước một

  1. So sánh dấu phân cách và dấu thoát

    CSV sử dụng dấu phẩy. Nếu một trường chứa dấu phẩy thì nó phải được đặt trong dấu ngoặc kép: "Smith, John". Nếu một trường chứa dấu ngoặc kép thì chúng phải được thoát: "Anh ấy nói ""xin chào""". TSV sử dụng tab. Các tab hiếm khi xuất hiện trong dữ liệu văn bản, vì vậy các trường TSV thường không cần trích dẫn hoặc thoát — việc phân tích cú pháp đơn giản hơn.

  2. So sánh khả năng tương thích

    CSV được hỗ trợ phổ biến: Excel, Google Sheets=Sheets, mọi cơ sở dữ liệu, mọi ngôn ngữ lập trình. TSV cũng được hỗ trợ rộng rãi nhưng ít được chuẩn hóa hơn — một số công cụ diễn giải các tab theo cách khác. Excel tự động phát hiện cả hai, nhưng CSV là định dạng xuất mặc định.

  3. So sánh độ phức tạp phân tích cú pháp

    Việc phân tích cú pháp CSV yêu cầu máy trạng thái xử lý các quy tắc trích dẫn (RFC 4180). Phân tích cú pháp TSV rất đơn giản: chia từng dòng theo ký tự tab. Điều này giúp TSV phân tích cú pháp nhanh hơn và ít xảy ra lỗi hơn. Tuy nhiên, CSV có thông số kỹ thuật chính thức (RFC 4180); TSV không có tiêu chuẩn chính thức.

  4. So sánh các trường hợp sử dụng

    CSV: nhập/xuất bảng tính, dữ liệu APIs, đường dẫn ETL, tệp cấu hình, trao đổi dữ liệu chung. TSV: tin sinh học (BLAST, GFF), NLP (định dạng CoNLL), dữ liệu clipboard (sao chép từ Excel = TSV), tệp nhật ký có dấu phân cách tab.

  5. Quyết định dựa trên dữ liệu của bạn

    Nếu dữ liệu của bạn chứa dấu phẩy (tên, địa chỉ, câu): TSV tránh trích dẫn. Nếu dữ liệu của bạn chứa các tab (hiếm trong văn bản): CSV tránh trích dẫn. Nếu bạn cần khả năng tương thích tối đa: CSV. Nếu bạn muốn phân tích cú pháp đơn giản hơn và dữ liệu của bạn không có tab: TSV.

Ví dụ

Dữ liệu giống nhau trong CSV và TSV

đầu vào: CSV: tên,tuổi,thành phố\n"Smith, John",30,"New York, NY"\nTSV: tên\tage\tcity\nSmith, John\t30\tNew York, NY

đầu ra: CSV yêu cầu dấu ngoặc kép cho các trường có dấu phẩy. TSV không cần trích dẫn vì các tab không xuất hiện trong dữ liệu.

Các vấn đề thường gặp

  • CSV trích dẫn các trường hợp đặc biệt: các trường chứa dấu phẩy, dấu ngoặc kép hoặc dòng mới yêu cầu quy tắc trích dẫn RFC 4180 — việc phân tách đơn giản bằng dấu phẩy sẽ làm hỏng dữ liệu có dấu phẩy được nhúng.
  • TSV không có tiêu chuẩn chính thức: không giống như CSV (RFC 4180), TSV không có thông số kỹ thuật chính thức, vì vậy các công cụ có thể xử lý các trường hợp khó khăn khác nhau — chỉ sử dụng TSV trong các đường ống được kiểm soát.
  • Sự cố mã hóa Excel: Excel có thể xuất CSV bằng BOM hoặc dấu phân cách dành riêng cho miền địa phương (dấu chấm phẩy ở các ngôn ngữ thuộc Liên minh Châu Âu) — chỉ định mã hóa UTF-8 và xác minh dấu phân cách khi nhập.
  • Sự không rõ ràng của dòng mới: Các trường CSV có dòng mới được nhúng là hợp lệ nhưng phá vỡ phân tích cú pháp từng dòng - TSV hiếm khi gặp phải vấn đề này vì các tab không phổ biến trong dữ liệu văn bản.

Mẹo

  • Sử dụng CSV để có khả năng tương thích tối đa — mọi bảng tính, cơ sở dữ liệu và ngôn ngữ lập trình đều hỗ trợ nguyên bản.
  • Sử dụng TSV khi dữ liệu của bạn chứa dấu phẩy chứ không phải tab (tên, địa chỉ, câu) để tránh hoàn toàn việc trích dẫn phức tạp.
  • Luôn sử dụng trình phân tích cú pháp CSV thích hợp (không phải string.split) để xử lý các quy tắc trích dẫn RFC 4180 — việc phân tách ngây thơ sẽ làm hỏng các trường có dấu phẩy hoặc dấu ngoặc kép được nhúng.
  • Khi sao chép dữ liệu từ Excel sang trình soạn thảo văn bản, bảng nhớ tạm sử dụng định dạng TSV — dán vào tệp .tsv để giữ nguyên các trường bằng dấu phẩy một cách chính xác.

Công cụ liên quan

Hướng dẫn liên quan

Tài liệu tham khảo