HomeGuidesCSV Cleaner

How to Convert a CSV File to UTF-8 Encoding

A practical guide — Excel, Google Sheets, Notepad++, and the automatic way.

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

  1. Open the CSV in Excel.
  2. File → Save As, and choose CSV UTF-8 (Comma delimited) from the file type dropdown.
  3. 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

  1. Import the CSV (File → Import). If characters look wrong on import, try the ISO-8859-1 option in the import dialog, then continue.
  2. 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)

  1. Open the CSV in Notepad++.
  2. Go to Encoding → Convert to UTF-8 (not "Encode in UTF-8" — Convert re-saves the bytes correctly).
  3. 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 Cleaner

More CSV fixes: remove blank rows · fix headers with spaces · CSV won't import?