b2KIT

TSV to CSV Converter

Convert tab-separated values to comma-separated format with proper escaping.

How to Use TSV to CSV Converter

  1. 1

    Paste TSV data

    Enter your tab-separated data or upload a TSV file.

  2. 2

    Convert to CSV

    Click convert to transform tabs to comma-separated values.

  3. 3

    Download the CSV

    Save or copy the converted CSV output.

Tested tool guide Tested browser tools Checked August 16, 2026

What TSV to CSV Converter does, with a checked example

Tab-separated data looks harmless: fields side by side, tabs between them, easy to copy out of any spreadsheet. The catch is that most software that consumes tabular data - database importers, web forms, analysis scripts - expects commas, and a comma sitting inside a value would be read as a column break. This page takes TSV input and emits CSV with the escaping that keeps the data intact: fields containing commas or quotes are wrapped in double quotes, and embedded quotes are doubled. The usual surprise is that the quote marks in the output are the conversion working correctly, not damage to your data.

Worked example

A concrete input and expected output from the current implementation.

Input

name	age	note
Ada	36	likes "tea", scones

Expected output

name,age,note
Ada,36,"likes ""tea"", scones"

The note field contains a comma and double quotes, so it is wrapped in quotes and its internal quotes are doubled. The header and the other two fields contain no special characters and pass through unchanged.

How the result is produced

1

Quoting rules

Every tab in the input marks a column boundary. When a field moves to the output it is checked against the CSV convention in RFC 4180: if the field contains a comma, a double quote, or a line break, it is wrapped in double quotes and every quote inside it is doubled. A field with none of those characters is copied verbatim, so clean data comes out clean.

2

Rows and shape

Conversion is line-based: each input line becomes exactly one output row, in the same order, with no header invented and no columns added, removed, or reordered. Because strict TSV forbids tabs and newlines inside fields, a value that spans two lines in the input is two records, not one, and rows whose field counts differ come through uneven, leaving column alignment to the reader.

Good uses

  • You copied cells from a spreadsheet or a database results grid - both copy as tab-separated - and the importer, form, or API you are feeding only accepts CSV.
  • A command-line tool such as psql, sqlite3, or mysql dumped query output as tab-separated text, and you need that data in a script or spreadsheet that reads CSV.
  • You are preparing a contact or product list for a mail-merge, newsletter, or CRM upload whose import parser rejects tabs but is strict about CSV quoting.

Limits and checks

  • A field containing a literal tab cannot exist in valid TSV - it is the delimiter itself. If your source used quoting to hold a tab inside a value, that field arrives as two columns and shifts every value after it; clean such rows in the source before converting.
  • Encoding is not part of the conversion: a paste carries only what the browser decoded, so text saved as UTF-16 (older Windows Notepad's 'Unicode' option) can reach the page as mojibake. Re-save such files as UTF-8 first if characters look wrong.
  • The double quotes in the output are escape syntax, not content. A proper CSV reader strips them, but a text editor shows them literally, and downstream code that splits on commas without honoring quotes will still miscount columns - the quoting only protects parsers that follow the convention.

Common questions

Why do some of my values suddenly have double quotes around them?

Because those values contain commas or quotes, and in CSV an unquoted comma means the next column - a value like likes "tea", scones would otherwise split into two columns. Wrapping it in quotes, doubling any internal quotes, tells a reader to treat the whole thing as one field, and the reader removes the quotes when it parses.

Can I just find-and-replace tabs with commas in my editor instead?

For data with no commas, quotes, or line breaks inside values, yes - the result is identical, and for small clean files that is often faster. The moment a value contains a comma, a plain replace creates a new column boundary and shifts everything after it. Preventing exactly that corruption is why the escaping exists.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools