tsvkit.org
TSV Toolkit
Sample data Say hi →

TSV to CSV

RFC 4180 output · quotes added only where needed · runs in your browser

Convert tab-separated data to CSV with correct quoting. This is the direction where quoting matters most: any field containing a comma, a quote, or a newline must be wrapped in double quotes and its internal quotes doubled, or the file silently gains columns when it's read back. That's applied here per field, so nothing is quoted unnecessarily and nothing that needs it is missed.

tsv → csv
Drop a .tsv file here, or
ready

How to use

  1. Paste your TSV into the left pane, or drop a .tsv file.
  2. Copy or download the CSV — the download is named output.csv.
  3. If it's for Excel on Windows, consider adding a BOM afterwards with add or remove BOM so accented characters open correctly.

What quoting rules are applied

RFC 4180: a field is quoted when it contains the delimiter, a double quote, CR, or LF; internal double quotes are escaped by doubling them. Nothing else is touched — leading zeros stay, whitespace inside fields stays, and no value is coerced into a number. Line endings in the output are LF; if the consumer wants CRLF, run the result through line endings.

When CSV is the wrong target

If the data is heading into a shell pipeline, a bulk loader, or a spreadsheet paste, TSV is generally the better format and you may not need this step at all. CSV earns its place when the destination is a tool that only accepts it — many web upload forms, older BI tools, and most "import contacts" features. Excel's regional settings are the other reason to be careful: in locales where the comma is the decimal separator, Excel expects semicolons in CSV and will put every row in one cell. Change delimiter produces semicolon output for that case.

FAQ

Why does the output have so few quotes?

Because quoting is applied per field, only where the content requires it. A file of numbers and single words needs none at all. That's valid CSV — quoting every field is also valid, but noisier.

Excel puts everything in column A.

Your locale expects semicolons. Either use change delimiter to emit ;, or open the file with Data → From Text/CSV and pick the separator explicitly.

Are tabs inside fields handled?

A field containing a tab is written quoted, so a proper CSV parser reads it back intact. Note that such a field means your source TSV was already using quoting rather than strict tab-separation.

What about the reverse conversion?

CSV → TSV, which parses the quoting and re-emits with tabs.

Privacy

100% client-side. No upload. See the privacy policy.