Home Tools Blog About

Convert TSV to CSV

In short

Convert TSV to RFC 4180 CSV (and back) with proper escaping, header row, multiple delimiters. Free, offline, client-side, instant, secure.

  • Runs in your browser
  • Nothing uploaded
  • Free, no sign-up

Convert tab-separated to comma-separated values with real RFC 4180 escaping - fields containing commas, quotes, or newlines get properly wrapped and quote-doubled. Reverse direction uses a stateful parser that decodes quoted fields correctly. Table preview shows parsed rows.

Parsed table preview

Type to begin.
🛡
100% PrivateNo server uploads, ever
InstantRuns in your browser
💧
No WatermarksClean output, always
🆓
Free ForeverNo accounts, no limits

How to Use Convert TSV to CSV

  1. Paste your TSV data. Copy from Excel, Google Sheets, a database export, or any tab-separated text file. Each line is one row; values are separated by tab characters. The placeholder shows the format.
  2. Choose output delimiter. Comma (standard CSV) is the default. Semicolon for European CSV (where comma is the decimal separator). Pipe for legacy systems or database exports that prefer it. The output filename extension reflects your choice.
  3. Toggle data-cleaning options. Skip blank rows (on by default) drops empty lines. Trim whitespace (off by default - TSV values often have intentional leading/trailing whitespace you want to keep). First-row-is-header marks the top row in the table preview but the CSV output still includes it as row 1.
  4. Watch the table preview. Shows the first 50 parsed rows so you can verify the conversion. Headers render as <thead> styled cells when the toggle is on. If column counts look wrong, double-check your input is actually tab-separated (not spaces).
  5. Read the RFC 4180-escaped CSV. Fields containing the output delimiter, double quote, CR, or LF get wrapped in "..."; embedded quotes are doubled. Doe, Jr. becomes "Doe, Jr."; say "hi" becomes "say ""hi""". Stats show how many fields needed escaping.
  6. Swap for reverse. ⇄ flips to CSV → TSV. A stateful RFC 4180 parser correctly handles quoted fields with embedded delimiters, escaped quotes, and newlines. Output is plain tab-separated - since TSV has no quoting convention, embedded tabs/newlines are replaced with spaces (with a warning toast).
  7. Copy or Download. Copy puts the output on your clipboard. Download saves output.csv (forward) or output.tsv (reverse) - the file extension reflects the format so Excel/Sheets opens it correctly.

Frequently Asked Questions

Does this actually escape per RFC 4180?

Yes – for real, this time. Fields containing the output delimiter, double quote, CR, or LF get wrapped in "..." with embedded quotes doubled. Doe, Jr."Doe, Jr."; say "hi""say ""hi""". Output passes through standard CSV parsers (Excel, Python csv module, Node csv-parse) without data corruption. Many tools skip this step and produce broken CSV that fails when a value contains a comma – we don’t.

What’s the difference between TSV and CSV?

TSV uses tab characters as field separators; CSV uses commas. TSV has no escaping convention – it assumes values don’t contain tabs. CSV has RFC 4180 escaping rules for fields with commas, quotes, or newlines. Excel exports both formats; databases and APIs vary. The main advantage of TSV is that values like 3,14 (decimal commas) stay intact without escaping.

What’s “European CSV” with semicolons?

In locales where comma is the decimal separator (Germany, France, Italy, Spain, Brazil, much of EU), Excel saves CSV using semicolons as the field separator to avoid ambiguity with decimal commas. So 3,14;Berlin means “3.14 in Berlin”, not “three values: 3, 14, Berlin”. Pick semicolon if your target environment uses this convention.

What happens to embedded tabs/newlines when converting CSV → TSV?

Replaced with spaces with a warning toast. TSV has no escaping convention – if a value contains a tab, it would silently become two values, corrupting the structure. The tool replaces embedded tabs and newlines with single spaces and reports how many replacements happened so you can spot data that needs further cleanup before TSV-ization.

Does it preserve Unicode and emoji?

Yes – the whole pipeline is UTF-8 throughout. Accented characters (é), CJK (你好), emoji (😀), RTL scripts all pass through unchanged. The browser’s text rendering handles them; the conversion logic just shuffles characters between columns. No re-encoding step that could corrupt anything.

What if my TSV has inconsistent column counts?

Preserved as-is. Each row is converted independently to match its actual column count. If row 1 has 3 columns and row 2 has 5 columns, the CSV output mirrors that. Spreadsheet apps render this as a ragged table; some downstream tools expect rectangular data and may complain, but the conversion itself is faithful.

What about BOM (byte order mark)?

Not specifically stripped. If your CSV/TSV starts with a BOM (), it appears as a leading invisible character in the first cell. Strip it from the source before pasting if needed. Most modern exports don’t include BOM unless explicitly requested for Excel compatibility.

What’s the input size limit?

200,000 characters. Beyond that the table preview slows browsers (each cell is a DOM node). Conversion still processes the full input; only the table preview caps at 50 displayed rows with a “Showing first 50 of N rows” note. Copy and Download deliver the complete output.

Is my data uploaded anywhere?

No. All parsing, escaping, table rendering, and TSV/CSV serialization run in your browser. Open DevTools → Network and confirm zero requests fire – even when you Convert or Download. Safe for proprietary datasets, customer lists, or anything you’d rather not send to a third-party converter.

Does it work offline?

Yes. Total bundle is about 20 KB. Load once, disconnect, keep converting. The parser and serializer are pure JavaScript – no library dependencies, no fonts to fetch, no analytics. Useful for cleaning data on airgapped systems or in environments without internet access.

Keep going

Related Tools

All Csv tools →
Share

Embed this tool

Add this free tool to your website. Copy and paste the code: