Skip to content
AZ Tools

CSV ↔ TSV ↔ Pipe Converter

Switch delimited text between CSV, TSV, pipe, and semicolon — with proper RFC-4180-style quoting and auto-detection.

Output (4 rows × 3 cols)
name	role	note
Alice	Admin	Lives in Seoul, Korea
Bob	Editor	"Says ""hi"""
Carol	Viewer	Plain note

Inner double quotes are escaped by doubling, per RFC 4180.

How to use

  1. Paste delimited text into the input box. The separator is detected from the first line.
  2. Pick the output delimiter. The conversion runs live.
  3. Row × column count is displayed so you can sanity-check the parse.

About this tool

Show

Pastes data delimited one way and re-emits it delimited another. Auto-detects the input separator from the first line, parses with full quote / escape-quote support, and re-emits with RFC-4180-style quoting (cells containing the new delimiter, quotes, newlines, or edge whitespace are wrapped in "…" and inner quotes doubled). Useful when an Excel export hands you semicolons but your pipeline expects commas, or when you need TSV to paste cleanly into Google Sheets.

Quoting on output is the part that makes the conversion safe rather than merely different. A cell containing the new delimiter has to be wrapped or the row silently grows a column, and a cell containing a quote has to have it doubled or the parser on the other end loses the field boundary. Converting by find-and-replace skips both steps, which is why it appears to work until a single address with a comma in it shifts every column after it.

The semicolon export is not Excel being difficult. In locales where the comma is the decimal separator, a comma-delimited file would be ambiguous on every number, so Excel follows the system list separator and writes semicolons. The same spreadsheet therefore exports differently on two machines in different countries, and a pipeline that assumes commas breaks on one of them.

Tab-separated data is the format to reach for when pasting into a spreadsheet, because the paste path treats tabs as cell boundaries directly. It has a matching weakness: there is no way to represent a literal tab inside a field, so TSV is only safe when the data contains none. CSV can carry anything because it has an escape mechanism, which is exactly what TSV lacks.

Detection reads the first line, so a file whose header happens to contain a comma while the data uses semicolons is detected wrongly and parses into one column. Check the column count in the output before trusting a large paste; a conversion that produced one column is the signature of a misdetected separator rather than of malformed data.

Frequently asked questions

How is the input delimiter detected?

By counting candidate characters (,, \t, |, ;) on the first line, ignoring anything inside "…" quotes. The most frequent wins — comma is the tiebreaker since it's the most common on the web.

What's the quoting rule on output?

RFC 4180 style: a cell is wrapped in "…" whenever it contains the output delimiter, a double quote, a newline, or starts/ends with whitespace. Embedded double quotes are escaped by doubling (" → "").

Why CSV ↔ TSV at all?

TSV is friendlier for spreadsheets — Google Sheets and Excel paste it directly into cells without a dialog. CSV is friendlier for data tools and CLI pipelines. Quick conversion between them removes a step.

Which delimiter should I choose when I get to pick?

Tab, if the destination accepts it. Real data contains commas and semicolons far more often than it contains tabs, so tab-separated files need quoting much less and survive being read by simple tools. Comma is the right choice only when something downstream insists on it — and if a field can contain your delimiter at all, the quoting rules matter more than the character does.

My converted file opens as one column in a spreadsheet. Why?

Because the spreadsheet is applying its own regional expectation rather than reading the delimiter you used: in locales where the comma is the decimal separator, a CSV is expected to be semicolon-separated. Use the import path, where you can state the delimiter, instead of double-clicking the file — or hand over a tab-separated file, which far fewer locales interpret differently.

Guides on this topic

Related tools