CSV Encoding Issues Explained (and How to Fix Them)
A CSV file is just text, and text has to be encoded as bytes somehow. When the encoding the file was written in doesn't match the encoding the tool reading it expects, you get garbled characters. Here's why it happens and how to fix it.
What Encoding Actually Is
A character like "é" isn't stored as itself, it's stored as a specific sequence of bytes, and which sequence depends on the encoding. UTF-8, the modern web standard, represents "é" differently than Windows-1252 (the older Western European Windows default) or Latin-1. If a file is written in one encoding and read as another, each byte still gets interpreted, just as the wrong character.
Recognizing the Symptoms
Mojibake (encoding mismatch)
"é" instead of "é"
"’" instead of "'"
"Café" instead of "Café"Replacement characters
"�" (a black diamond with a question mark)This means the byte sequence couldn't be decoded at all, information may be permanently lost, not just misdisplayed.
The first case (mojibake) is usually recoverable: the original bytes are intact, they're just being interpreted with the wrong encoding. The second case is more serious, if a tool already replaced unrecognized bytes with "�" and saved the file, the original character data is gone for good.
Why This Happens So Often With Excel
Excel's plain "CSV" export option (as opposed to "CSV UTF-8") uses your system's regional default encoding, which on many Windows installations is Windows-1252, not UTF-8. If that file is then opened by a tool expecting UTF-8 (which is most modern tools, including web browsers and most programming languages by default), every non-ASCII character breaks.
How to Fix It
- Identify the actual source encoding. If you know the file came from an older Windows export, Windows-1252 or Latin-1 (ISO-8859-1) are the most common culprits.
- Re-decode using the correct source encoding, then re-encode as UTF-8. This is not the same as just changing a file's declared encoding, the bytes need to be reinterpreted correctly first.
- Verify on a sample that contains known accented characters or symbols before processing the full file.
- Always export as UTF-8 going forward to avoid the problem recurring. In Excel, use "CSV UTF-8 (Comma delimited)" specifically, not the plain "CSV" option.
The Byte Order Mark (BOM) Gotcha
UTF-8 files sometimes start with a special marker (the BOM, a few invisible bytes at the very start of the file) that some tools add to signal "this is UTF-8." Excel actually wants this BOM to correctly detect UTF-8 CSVs, but some other tools and programming languages choke on it, treating it as a stray character in your first column header. If your first column header looks subtly broken only in some tools, check for a BOM.
Doing This in How To CSV
The Encoding tool detects and converts between character encodings, and Auto Fix handles common encoding problems automatically as part of a broader structural repair pass, both run entirely in your browser, so the file never has to round-trip through a server to get fixed.
Turn this into a saved workflow
Create a free account to save the steps from this guide as a reusable workflow and re-run it on any file, from any device.