← All guides

Why do accented characters break when a CSV opens in Excel?

· 3 min read

If you double-click a CSV file and Excel shows odd letters like "ö" or "ü", the file is not corrupted. Excel and the file simply use different character encodings.

The cause: character encoding

A computer stores letters as numbers, and the character encoding decides which number is which letter. Most modern programs and the internet use UTF-8. When you double-click a CSV file, Excel on many Windows systems expects the older system code page instead, unless the file carries a special marker.

If a file is UTF-8 but Excel assumes the old encoding, two-byte letters turn into two odd characters. For example ö shows as "ö", ü as "ü", ç as "ç". The reverse happens too: an old Windows-1254 file opened by a UTF-8 program shows question marks or black diamonds instead of letters.

Fix 1: Open the file with "From Text/CSV"

Instead of double-clicking, open Excel and use "From Text/CSV" on the Data tab. In the window that opens, set "File origin" to "65001: Unicode (UTF-8)". If the preview looks right, click Load. This does not change the file, it just reads it with the right encoding.

Fix 2: Add a BOM to the file

A BOM (Byte Order Mark) is an invisible three-byte marker at the very start of a file. When Excel sees it, it knows the file is UTF-8 and shows letters correctly even on a double-click.

If you generate CSVs with your own program, I recommend writing UTF-8 with a BOM. In Python that means opening the file with encoding="utf-8-sig".

Fix 3: Repair the encoding with a tool

If you already have a broken file, the CSV encoding tool detects the encoding automatically, shows the letters in a preview and lets you download a fixed file with the "Add UTF-8 BOM for Excel" option. The file is processed in your browser and never uploaded.

One more problem: everything lands in a single column

In regions where the decimal separator is a comma, Excel uses a semicolon as the CSV delimiter. If you open a comma-separated CSV there, all the data appears in one column. The fix is to change the delimiter to a semicolon, and the CSV delimiter tool does that. If you will send the file to another program, you can convert it back to commas.

Short rule: for Excel use UTF-8 + BOM + the delimiter your region expects. For uploading to another system, usually UTF-8 without BOM + commas.

More guides