Developer tools
CSV Fix Encoding
Read your CSV with the right character encoding.
Preview the decoded text, then save it as UTF-8.
Files stay on your device
Convert your file
1. Choose a CSV file
Any CSV, TSV or text file. It is read on your device and converted as soon as you choose it.
2. Read the source
Auto uses a Unicode BOM or valid UTF-8. It cannot reliably identify legacy encodings. Choose the original encoding; the preview updates with each choice.
Off by default. When enabled, undecodable sequences become � and a warning is shown. In Auto mode without a BOM, select an encoding before allowing replacement.
3. Export as UTF-8
Adds the three-byte UTF-8 signature. Choose this if your destination expects a BOM.
Enable JavaScript to convert CSV.
Output preview
How to use
- Choose a file
Add CSV, TSV or text. Conversion starts automatically.
- Check the source
Choose the original encoding if Auto cannot read it. Check familiar words in the preview.
- Download UTF-8
Choose the BOM setting your destination needs, then download.
What changes
Text is re-encoded as UTF-8. One recognized input BOM is removed; an output BOM is added only when selected. Delimiters, quotes, line endings, blank rows, spaces, formulas and number strings are preserved as decoded.
No CSV parsing, cell editing or automatic repair of already-garbled text is performed. Successful decoding alone cannot confirm the original encoding.
Your privacy
File reading and conversion run in your browser. File contents and names are never uploaded, logged or saved by this tool. Reset releases the selected file and output; you choose whether to download.
There is no imposed file-size limit. The file is read in slices and the whole UTF-8 output is held in browser memory until you download it; the preview shows the beginning of long files. Cancel stops processing and keeps your file and settings.
Frequently asked questions
Which source encodings are supported?
The source menu includes UTF-8, UTF-16 LE/BE and common Windows, ISO, Cyrillic and East Asian encodings, using your browser’s native decoders. An unavailable decoder gives an error. Browsers treat ISO-8859-1 (Latin-1) as Windows-1252, so bytes 80 to 9F become Windows punctuation such as the euro sign and curly quotes. The five bytes Windows-1252 leaves undefined (81, 8D, 8F, 90, 9D) become invisible C1 control characters; the result reports how many of those the output contains. UTF-32 and legacy output encodings are not supported.
How certain is Auto?
A supported Unicode BOM identifies the decoding choice. Without a BOM, Auto only checks whether the bytes are valid UTF-8; this is not proof of their original encoding. Some legacy text is also valid UTF-8, and plain ASCII is identical in almost every encoding. UTF-16 without a BOM looks like UTF-8 full of NUL bytes, so Auto stops and asks you to choose its byte order instead of guessing. Invalid UTF-8 needs a manual source choice. A file that is already valid UTF-8 is reported as needing no fix.
Will this fix mojibake such as “José”?
If the original bytes are still intact, selecting the correct source encoding can make them readable. Text already saved in a garbled form is left as-is. This tool cannot recover characters that were previously lost or replaced.
What happens to invalid or empty input?
Invalid byte sequences stop conversion by default. Opting into replacement substitutes � and reports a lossy conversion. The error and the warning give the line of the first replacement character and count U+FFFD characters in the output, including existing ones, rather than claiming a count of discarded bytes. An empty file produces empty text, plus a BOM if selected. File extensions and MIME labels do not determine encoding; CSV syntax is not validated.
Why include a BOM?
A UTF-8 BOM is the byte sequence EF BB BF at the start of a file. Some receiving applications use it as an encoding hint; others expect no BOM. Select the setting required by your destination. The preview omits this output signature.
Are formulas and invisible characters changed?
No. CSV formulas, control characters and text content remain as decoded. The preview renders text safely and does not execute markup or formulas. A spreadsheet may interpret cells when opening the download; encoding conversion does not change that behavior.