Xerobit

CSV Delimiter Converter: Change Separators Between Comma, Tab, Semicolon and More

Paste CSV data and choose a new delimiter to get the converted output instantly. This csv delimiter converter parses RFC 4180 compliant CSV including quoted fields, doubled quotes, embedded commas and newlines, and CRLF line endings. It reports ragged rows honestly so you can spot data issues. Everything runs in your browser with no uploads.

Supports quoted fields, embedded commas, newlines and doubled quotes per RFC 4180.

When off, only fields containing the delimiter, quotes or newlines are quoted.

Removes leading and trailing spaces and tabs from unquoted fields. Quoted fields are left as they are.

Converted CSV

name	age	city
Alice	30	New York, NY
Bob	25	Chicago

How to use the csv delimiter converter

  1. Paste your CSV data into the input area.
  2. Select the current delimiter (or choose Custom and type a single character).
  3. Choose the output delimiter you want.
  4. Optionally enable Quote all fields or Trim whitespace.
  5. Copy the converted CSV from the output area. This csv delimiter converter updates live as you change settings.

How the conversion works

The tool parses the input using a strict RFC 4180 compliant parser written in TypeScript. It reads the text character by character, tracking whether it is inside a quoted field. Inside quotes, a doubled quote ("") becomes a single quote in the data, and the delimiter or newline is treated as literal text. Outside quotes, the chosen delimiter separates fields and a newline (CRLF, LF or CR) ends the record. A quote only opens a quoted field at the start of a field, so a stray quote inside a plain value stays a literal character. Blank lines are skipped, and a UTF-8 byte order mark at the start is dropped.

After parsing into a two-dimensional array of strings, the serializer writes each row using the output delimiter. By default it quotes a field only when that field contains the output delimiter, a double quote, or a newline. When Quote all fields is checked, every field is wrapped in double quotes and any internal quotes are doubled.

For example, converting name,desc "A, B",C from comma to tab: the parser sees two fields in the second row because the comma inside quotes is not a separator. The serializer writes name\tdesc\n"A, B"\tC because the output delimiter is a tab and the field A, B does not contain a tab, so it stays unquoted. This csv delimiter converter preserves data integrity while minimizing unnecessary quoting.

Delimiter reference table

Common delimiters and their typical use cases:

CharacterNameCommon use
,CommaStandard CSV, Excel default in US/UK
\tTabTSV, spreadsheets, data interchange
;SemicolonEuropean CSV (comma is decimal separator)
|PipeLog files, database exports
:ColonLegacy systems, /etc/passwd style

Ragged rows and data quality

If rows have different field counts, the parser does not pad or truncate. It returns exactly what it found so you can see the problem. The output will have the same ragged structure. This is intentional: hiding mismatched columns can corrupt downstream imports. After conversion, open the result in a spreadsheet or run a row-count check to locate the offending lines.

Example: input a,b,c\n1,2\n3,4,5,6 parsed with comma delimiter yields three rows with 3, 2 and 4 fields respectively. Converting to tab keeps those counts. You can then filter or fix the source before loading.

Handling custom delimiters

Choose Custom from the delimiter dropdown and type exactly one character in the custom field. Multi-character delimiters are not supported and will produce an error. The custom character can be any single character except newline, carriage return or the double quote, which is the quoting character. Typical custom choices include ^, ~ or \x1F (unit separator). If you need a non-printable control character, paste it from another source into the custom field.

When to quote all fields

Enable Quote all fields when the receiving system expects every field to be quoted, or when you want a predictable format for diffing. Some older mainframe imports and certain ETL pipelines require universal quoting. The trade-off is larger file size and slightly slower parsing on the consumer side. For most modern tools (Excel, Python csv module, PostgreSQL COPY) the default minimal quoting works fine.

Worked examples

ExampleInputResult
Comma to tab with quoted commasInput CSV: name,description,price / "Widget, Blue","A small, blue widget",12.50 / "Gadget, Red","A large, red gadget",25.00; Input delimiter: ,; Output delimiter: name description price / Widget, Blue A small, blue widget 12.50 / Gadget, Red A large, red gadget 25.00
Semicolon to comma with embedded newlinesInput CSV: id;notes;status / 1;"Line 1 / Line 2";active / 2;"Single line";pending; Input delimiter: ;; Output delimiter: ,id,notes,status / 1,"Line 1 / Line 2",active / 2,Single line,pending
Pipe to comma, quote allInput CSV: sku|qty|location / ABC-123|10|Warehouse A / XYZ-789|5|Warehouse B; Input delimiter: |; Output delimiter: ,; Quote all fields in output: yes"sku","qty","location" / "ABC-123","10","Warehouse A" / "XYZ-789","5","Warehouse B"
Tab to pipe with ragged rows reportedInput CSV: col1 col2 col3 / a b c d / e f; Input delimiter: ; Output delimiter: |col1|col2|col3 / a|b|c|d / e|f

FAQ

Does the tool support RFC 4180 fully?

It handles quoted fields, doubled quotes, embedded delimiters, embedded newlines (CRLF, LF and CR) and an optional trailing newline. It does not enforce a header row; the first row is treated as data like any other.

What happens with an unclosed quote at end of file?

The parser treats the rest of the input as part of that field until it finds a closing quote or reaches the end. This matches lenient CSV readers and lets you see the problem in the output.

Can I convert from a multi-character delimiter like "::"?

No. RFC 4180 defines a single-character delimiter. For multi-character separators, use a text editor find/replace first, then run the result through this csv delimiter converter.

Why does the output sometimes have fewer quotes than the input?

The serializer uses minimal quoting by default: it only adds quotes when a field contains the output delimiter, a double quote, or a newline. This produces cleaner, smaller CSV. Enable Quote all fields to force quoting everywhere.

Is my data uploaded anywhere?

No. All parsing and conversion runs in your browser. Nothing leaves your device.

How large a file can I paste?

The tool stops at about 3 MB of input or 2 million cells and shows a clear message, so the page never freezes. For bigger files, use a streaming command line tool such as csvkit or mlr.

Does it preserve BOM (byte order mark)?

A leading byte order mark is removed before parsing, so it does not end up inside the first field.