🍱 Lunchbox Hands

CSV Delimiter Converter

Convert CSV between commas, semicolons, tabs, and pipes

Drop a .csv, .tsv or .txt file here or click to choose — or paste below (up to 50 MB)
Input delimiter
Output delimiter
Output
Converted text will appear here…

Switch a CSV between comma, semicolon, tab, and pipe separators — or any custom delimiter — without breaking fields that contain commas, quotes, or line breaks. The input is properly parsed rather than find-and-replaced, so "Smith, John" stays one value, embedded quotes are escaped correctly, and rows with a different number of fields are flagged instead of silently shifting columns. You also control the quote character, LF or CRLF line endings, and whether the UTF-8 byte order mark is kept, stripped, or added for Excel.

Everything runs in your browser and nothing is uploaded. To look through a file before or after converting it, open it in the CSV viewer; to turn the data into another format, try CSV to JSON or the CSV to Markdown table converter.

Frequently asked questions

Why does Excel open my CSV as one long column?

Excel uses your operating system's list separator when it opens a .csv file. In most of Europe and Latin America that separator is a semicolon, because the comma is already the decimal mark (1,50 means one and a half). A comma-separated file from a US system therefore lands in a single column, and a semicolon file from Germany does the same thing on a US machine. Convert the file to the separator your Excel expects — semicolon for comma-decimal locales, comma otherwise — and it opens in proper columns. Adding a BOM also helps Excel recognise UTF-8 so accented characters are not garbled.

How are commas, quotes, and line breaks inside a field handled?

The file is fully parsed first, so a quoted field like "Smith, John" stays one value instead of splitting in two. When it is written back out, a field is wrapped in quotes only if it contains the new delimiter, the quote character, a line break, or leading or trailing spaces; embedded quotes are doubled ("" inside a quoted field), which is the RFC 4180 convention every spreadsheet understands. That means a field that needed quotes as comma-separated text may lose them after converting to tab-separated, and the reverse. Turn on "Quote all fields" if the program reading the output expects every value quoted.

What is the difference between CSV and TSV?

Both are plain-text tables with one row per line. CSV separates fields with commas (or semicolons in some locales), while TSV separates them with tab characters. Tabs rarely appear in real data, so TSV files need far less quoting and are easy to paste straight into a spreadsheet — copying cells out of Excel or Google Sheets actually gives you TSV. Many databases, bioinformatics tools, and command-line utilities prefer TSV for the same reason. When you choose Tab as the output here, the download is saved with a .tsv extension so other programs recognise it.

How does delimiter auto-detection work, and when should I override it?

The converter samples the first rows of your data and tries comma, tab, pipe, and semicolon, choosing the one that splits the rows into a consistent number of fields. It correctly picks the semicolon in files like "price;qty / 1,50;3" where commas are decimal marks. Detection can be fooled by very short samples, single-column data, or files where two separators appear equally often. The status line under the output tells you which delimiter was used; if it is wrong, pick the input delimiter yourself — including a custom one such as ~ or a multi-character separator like ::.

Should I use LF or CRLF line endings, and what is a BOM?

LF is the line ending used by macOS, Linux, and most programming tools; CRLF is the Windows convention and what RFC 4180 formally specifies. Nearly every modern program reads both, but some older Windows importers and a few strict parsers expect CRLF. A BOM (byte order mark) is an invisible character at the very start of a file that marks it as UTF-8. Excel on Windows relies on it to show accented and non-Latin characters correctly, while some scripts and databases treat it as junk in the first column name. "Keep" preserves whatever your input had; "Strip" and "Add" force it either way.

Is my file uploaded, and how large can it be?

No. The file is read and converted entirely in your browser with JavaScript, and nothing is sent to a server — you can disconnect from the internet after the page loads and it still works. Because all the work happens on your device, files up to 50 MB are accepted; above 20 MB you will see a warning that conversion can take a few seconds. Very large files are not shown in the editing box (it would freeze the page), but they are converted in full, and the output preview shows the first 100 KB while Copy and Download give you everything.

Get weekly dev tools and tips