CSV encoding repair
Compare raw CSV bytes under several character encodings and explicitly confirm a UTF-8 export after reviewing the text.
Accepted files: .csv,.tsv,.txt,text/csv,text/plain. Choose one file. Up to 1 MB in total.
One nonempty file up to 1,000,000 raw bytes, 10,000 data records, 100 columns and 100,000 data cells. Candidate previews show the first 600 decoded characters. Replacement counts include literal U+FFFD characters already in the file. Mojibake warning patterns can match legitimate text. Comparison alone produces no repaired CSV. Output is capped at 4,000,000 CSV characters. Compare candidates first. Select and confirm an encoding before creating a UTF-8 CSV. Up to 1,000,000 characters. Review the settings before running.
Your result
How to use CSV encoding repair
- Choose a raw CSV file and run Compare only.
- Review each candidate preview, replacement count, malformed-byte flag and mojibake warnings.
- Select the source encoding, confirm your choice and optionally add a UTF-8 BOM before exporting.
Useful next steps
A preview is not an encoding diagnosis
UTF-8, Windows-1252, UTF-16LE, UTF-16BE and Shift_JIS candidates appear in a fixed order. Counts and BOM information are clues, not a confidence ranking. ASCII and many legacy files are ambiguous. No encoding is selected silently and no mojibake text is automatically rewritten.
Understand conversion and possible loss
The output reparses CSV and writes quoted comma-separated UTF-8 with CRLF records. Parsed cell strings and quoted multiline content are retained before optional formula protection, while original quoting, delimiters and byte layout change. Malformed bytes or U+FFFD replacement characters require a separate explicit possible-loss permission. Previously lost text cannot be reconstructed.
Local processing and exact strings
Processing runs on your device. CSV downloads quote every cell and protect spreadsheet formula prefixes by default, which changes affected strings. Preserve original cells is for trusted machine processing. Import identifiers as text in spreadsheet applications to preserve leading zeros.