How to Convert a CSV File to UTF-8 Encoding
If you've ever opened a CSV and seen Zoé instead of Zoé, or café instead of café, you've hit an encoding problem. The file was saved in one encoding (often Windows-1252) and opened as another (usually UTF-8). Accented characters, curly quotes, and symbols turn into gibberish — and imports choke on them.
UTF-8 is the safe universal choice. Here's how to get your file there.
Method 1: Excel
- Open the CSV in Excel.
- File → Save As, and choose CSV UTF-8 (Comma delimited) from the file type dropdown.
- Save. Done — the new file is UTF-8.
Note: plain "CSV (Comma delimited)" does not guarantee UTF-8. You must pick the UTF-8 variant explicitly.
Method 2: Google Sheets
- Import the CSV (File → Import). If characters look wrong on import, try the ISO-8859-1 option in the import dialog, then continue.
- File → Download → Comma-separated values (.csv).
Google Sheets always exports UTF-8, so a round-trip through Sheets fixes encoding automatically.
Method 3: Notepad++ (Windows)
- Open the CSV in Notepad++.
- Go to Encoding → Convert to UTF-8 (not "Encode in UTF-8" — Convert re-saves the bytes correctly).
- Save the file.
Method 4: Python
# Read with the original encoding, write as UTF-8
with open('messy.csv', encoding='cp1252') as f:
content = f.read()
with open('clean.csv', 'w', encoding='utf-8') as f:
f.write(content)
If you're not sure of the original encoding, try cp1252 first (most common for Windows-generated files), then latin1.
The one-click way
Don't want to detective-work every file's encoding? CSV Cleaner auto-detects the encoding and converts to clean UTF-8 — along with header and blank-row fixes. $9 once, yours forever.
See CSV CleanerMore CSV fixes: remove blank rows · fix headers with spaces · CSV won't import?