Skip to content
TheSpreadFix

How to Fix CSV Encoding for Excel

Updated

When 'José' shows up as 'José' or accented characters turn into question marks in Excel, the file has an encoding problem. This guide explains why it happens and gives you three ways to fix it without losing data.

What encoding is and why it matters

Every text file uses an encoding — a mapping from bytes to characters. UTF-8 can represent every character in every language and is the standard for the modern web. Windows-1252 (also called ANSI) handles Western European characters but nothing else. When Excel opens a UTF-8 file but reads it as Windows-1252, multi-byte characters like é, ñ and ü are split into two or three garbage characters.

The reverse also happens: a file encoded in Windows-1252 opened as UTF-8 will show replacement characters or errors for anything outside basic ASCII.

The BOM: Excel's encoding hint

A byte order mark (BOM) is an invisible three-byte prefix (EF BB BF) at the start of a UTF-8 file. When Excel sees a BOM it knows the file is UTF-8 and reads it correctly. Without a BOM, Excel on Windows falls back to the system's default encoding — usually Windows-1252 — and accented characters break.

Most web applications and databases export CSV without a BOM, which is why double-clicking a CSV in Excel so often produces garbled text.

Delimiter confusion: commas vs semicolons

Encoding is not the only thing that can go wrong when opening a CSV. In countries that use a comma as the decimal separator (most of Europe), Excel expects semicolons as the field delimiter. A comma-delimited file opened on a European-locale machine puts entire rows into a single cell. Check your system's list separator (Windows Settings → Region → Additional settings) to see what Excel expects.

Fix 1: re-save as UTF-8 with BOM in Notepad

  1. Right-click the CSV file → Open with → Notepad (or Notepad++).
  2. Check that the text looks correct in Notepad — if accented characters display properly, the file is likely UTF-8 already.
  3. Go to File → Save As. In the 'Encoding' dropdown, select 'UTF-8 with BOM' (Notepad on Windows 11) or 'UTF-8' (Notepad++, then check 'Add BOM' in the encoding menu).
  4. Save the file and open it in Excel — accented characters should now display correctly.

This works when the file is already UTF-8 but missing the BOM. If the file is in a different encoding (like Windows-1252), you need to tell Notepad the correct source encoding first.

Fix 2: import with encoding selection in Excel

  1. Open Excel to a blank workbook.
  2. Go to Data → From Text/CSV (or Data → Get Data → From File → From Text/CSV in newer versions).
  3. Select the CSV file. In the import preview, change 'File Origin' to '65001: Unicode (UTF-8)' — or the correct encoding if you know the file is not UTF-8.
  4. Set the delimiter to match the file (comma, semicolon or tab).
  5. Click Load. The data should appear correctly.

This approach lets you try different encodings in the preview until the text looks right, without modifying the original file.

Fix 3: use TheSpreadFix

TheSpreadFix detects the file's encoding automatically, converts it to UTF-8 with BOM, and fixes the delimiter — so the downloaded file opens correctly in Excel on any machine. It also shows you a preview before you download, so you can confirm accented characters and special characters are intact.

Frequently asked questions

Why does my CSV look fine in Notepad but garbled in Excel?

Notepad often detects UTF-8 correctly, but Excel on Windows defaults to the system encoding (usually Windows-1252) when there is no BOM. Re-save the file as UTF-8 with BOM, or import it using Data → From Text/CSV.

Will adding a BOM break other tools?

Most modern tools and languages (Python, Node.js, databases) handle the BOM gracefully — they either use it or ignore it. It is safe to add for Excel compatibility.