Skip to the tool
ViewCSV
Files stay on your device

Convert CSV to TSV

orders.csv· SAMPLE DATA15 rows · 8 columns
Values starting with = + - @ are prefixed with ' so spreadsheet apps show them as text. Plain numbers such as -12.5 are unchanged.
order_id	customer	city	product	quantity	unit_price	order_date	status
001041	Liam Garcia	Austin	Desk lamp	6	142.72	2026-01-09	paid
001042	Mary Clark	Seattle	"Monitor 27"""	5	210.76	2026-02-03	shipped
001043	Henry Taylor	Denver	Notebook A5	1	143.74	2026-03-25	pending
001044	Lucas Smith	Chicago	"Monitor 27"""	5	137.00	2026-04-25	shipped
001045	Noah Davis	Seattle	USB-C cable	7		2026-05-11	refunded
001046	Emma Williams	Portland	Notebook A5	6	166.44	2026-06-10	pending
001047	" Henry Taylor "	New York	"Monitor 27"""	7	57.53	2026-07-14	pending
001048	Lucas Jones	Austin	Desk lamp	7	194.19	2026-08-03	pending
001049	Olivia Williams	Austin	USB-C cable	5	190.03	2026-09-07	pending
001050	Mary Wilson	New York	Chair, ergonomic	8	61.04	2026-01-15	pending
001051	Noah Williams	Portland	Chair, ergonomic	2	61.37	2026-02-25	refunded
001052	Mia Smith	Boston	"Monitor 27"""	5	231.42	2026-03-09	refunded
001053	Ava Garcia	Boston	USB-C cable	3	201.24	2026-04-05	pending
001054	Mary Clark	Boston	Desk lamp	5	35.49	2026-05-12	pending
001043	Henry Taylor	Denver	Notebook A5	1	143.74	2026-03-25	pending

15 rows · 1 file

Open or paste a CSV file and the TSV appears in the preview; Download TSV saves it as a .tsv file. Commas inside values need no quotes in TSV, so most rows come out as plain tab-separated text. The one real decision is what to do with tabs and line breaks inside a value: quote it for Excel and pandas, backslash-escape it for PostgreSQL, or replace it with a space for strict TSV readers. The file is converted in your browser and never uploaded.

How to convert CSV to TSV

  1. Open a .csv, .tsv or .txt file, drop it on the tool, or paste rows. The delimiter is detected; set it, or a legacy encoding such as Windows-1252, under Import settings if needed.
  2. Under Tabs and line breaks inside values, choose the style the program reading the TSV expects. Then set Line endings and Include the header row.
  3. Choose the Output encoding and select Download TSV, or Copy the text.

To convert several CSV files with the same settings, choose Batch: convert several files. Each file is read with automatic delimiter detection and a header row, and the results download together as one ZIP.

Tabs, line breaks and encoding options

Quote the value (Excel, pandas)The default. A value containing a tab, a line break, a double quote, or a leading or trailing space is wrapped in double quotes, with inner quotes doubled, the same rules CSV uses with a tab as the delimiter. Everything else is written bare.
Backslash escapes \t \n (PostgreSQL)Never quotes. A tab becomes \t, a line feed \n, a carriage return \r and a backslash \\, so every record stays on one line. This is the text format PostgreSQL COPY reads; double quotes are written as plain characters.
Replace with spaces (strict TSV)Each tab, line break or CRLF pair inside a value becomes one space, so the file meets the IANA rule that fields contain no tabs. Backslashes and quotes are left as they are. This changes data, and the tool reports how many values were affected.
Line endingsWindows (CRLF) (default) or Unix/macOS (LF) after every record, including the last.
Include the header rowTurn it off to write data rows only, for example when appending to an existing table.
Protect against spreadsheet formulasOn by default. Values starting with =, +, -, @, a tab or a carriage return get a leading ' so a spreadsheet shows them as text. Plain numbers such as -12.5 are unchanged. Turn it off when the TSV feeds a database or script and must hold the values exactly.
Output encodingUTF-8, UTF-8 with BOM (for Excel), UTF-16 LE (with a byte-order mark) or Windows-1252. Windows-1252 stops with a message naming any character it cannot store.

Commas, multiline cells and IDs in TSV

  • Quoted commas in the CSV need nothing in TSV: "Desk lamp, brass" becomes Desk lamp, brass.
  • A multiline cell stays one value. With quoting it spans lines inside quotes; with escapes it is written as Ships in 2 boxes\nfragile on one line.
  • Leading zeros and long IDs are written exactly: TSV has no types, so 00731 stays 00731.
  • With escapes, a Windows path such as C:\temp is written C:\\temp, so a reader that decodes escapes gets the original back.
  • A row with more values than the header gets extra columns named Column 4, Column 5…; a shorter row is padded with empty values. Blank headers become Column 3 and repeated ones name (2).

When the TSV loads wrongly

  • Rows split in the middle when loaded. The reader doesn’t understand quoted line breaks. Choose Backslash escapes \t \n (PostgreSQL) if it decodes escapes, or Replace with spaces (strict TSV) if it doesn’t.
  • Values start with an apostrophe. That is Protect against spreadsheet formulas at work. Turn it off for database or script imports.
  • The spreadsheet shows backslash codes. A cell reads \n or \t because spreadsheets don’t decode backslash escapes. Use Quote the value (Excel, pandas) for files meant for Excel or LibreOffice.
  • Everything ends up in one column. The input delimiter was guessed wrong; set it under Import settings and open the file again.

Limits and large files

Files up to 25 MB, 100,000 rows, 250 columns and 2 million cells open with a live preview. Larger files are converted in streaming mode: the file is read twice in chunks, once to find the widest record and once to write, and the download covers every row with the same output the preview would show. Copy isn’t available for those files, and a single output is capped at 4 GB.

In streaming mode the file is decoded automatically (UTF-8, or UTF-16 when it starts with a byte-order mark) and the first row is treated as the header.

Conversion runs in a background worker in this tab; Cancel stops it. To change the delimiter but keep CSV quoting, use Change CSV delimiter and encoding; for a table to paste into documentation, use CSV to Markdown.

Example: an order list as TSV

An order list with a quoted comma, a two-line note and a formula-like value, converted with the defaults (Quote the value (Excel, pandas), formula protection on; shown with LF line endings). With Backslash escapes \t \n (PostgreSQL) the note becomes Ships in 2 boxes\nfragile on one line and the formula value is written without quotes.

CSV
id,product,note
00731,"Desk lamp, brass","Ships in 2 boxes
fragile"
00732,Cable tidy,"=HYPERLINK(""x"")"
TSV
id	product	note
00731	Desk lamp, brass	"Ships in 2 boxes
fragile"
00732	Cable tidy	"'=HYPERLINK(""x"")"

Questions and answers

What is the difference between CSV and TSV?

Only the delimiter and its conventions. TSV separates fields with a tab, so commas in values need no quotes. The IANA definition forbids tabs inside fields, which is why tools disagree on how to write them.

Which option should I pick for PostgreSQL COPY?

Backslash escapes \t \n (PostgreSQL), with formula protection off. PostgreSQL’s text format uses a tab delimiter by default and decodes \t, \n, \r and \\. An empty value is loaded as an empty string, because the default NULL marker in that format is \N; add NULL '' to the COPY options to load empty values as NULL.

Can I convert TSV back to CSV?

Yes: open the TSV in Change CSV delimiter and encoding. The tab delimiter is detected, and you can choose a comma or semicolon output. Backslash escapes are read as plain characters, not decoded.

Standards and references