Fix garbled characters in a CSV.
When a UTF-8 file is opened as Latin-1 or Windows-1252, é becomes é and curly quotes turn into “. This reverses that exactly, rather than guessing at substitutions — and leaves text alone when it wouldn't decode cleanly.
Everything runs in your browser. Nothing is uploaded.
Drop a CSV or Excel file here
Or choose a file — nothing leaves your browser.
Common questions
How is this different from a find-and-replace list?
A substitution table only covers the sequences someone remembered to add. This re-encodes each character back to its original byte and decodes as UTF-8, which reverses the corruption exactly for every character.
Could it damage text that is already correct?
No. If the text does not decode cleanly as UTF-8 after re-encoding, it is left exactly as it was. Correct text and non-Latin scripts pass through untouched.
What is a byte-order mark?
An invisible marker some programs write at the start of a file. It attaches to your first column name, so a header reads as \ufeffid rather than id and lookups by name silently fail. It is stripped here.
Is my file uploaded anywhere?
No. The file is parsed and processed entirely in your browser using JavaScript. It never leaves your device, and nothing is stored on our servers.