Guides
CSV Shows Weird Characters in Excel (é, ’): How to Fix UTF-8 Encoding
Updated 2026-10-13
You open a CSV exported from a website, a database or another app, and Excel shows café instead of café, don’t instead of don't, or unreadable symbols where Chinese or Japanese text should be. Or the text is fine but ZIP codes lost their leading zeros and 16-digit IDs end in 0. These are two different problems.
Why the characters are wrong
A CSV file is plain text and doesn't record its encoding. When you double-click a CSV, Excel reads it with your system's default code page, such as Windows-1252 on English Windows.
Most websites, databases and apps export UTF-8. Without a byte order mark (BOM) at the start of the file, Excel reads the UTF-8 bytes as Windows-1252, and every non-ASCII character turns into two or three wrong ones: é becomes é, a curly apostrophe becomes ’.
Fix 1: import with From Text/CSV and choose the encoding
- In a blank workbook, choose Data > From Text/CSV and select the file.
- In the preview, set File Origin to 65001: Unicode (UTF-8).
- When the preview looks right, click Load. If some columns hold long numbers or codes with leading zeros, click Transform Data first, change those columns to Text, then load.
This leaves the file unchanged, so you repeat it every time.
Fix 2: add a BOM so double-clicking works
- Open the CSV in Notepad.
- Choose File > Save As, set the encoding to UTF-8 with BOM and save.
- From now on Excel opens it correctly with a double-click.
When you export a CSV from Excel yourself, save it as CSV UTF-8 (Comma delimited) so others can open it without this problem.
Leading zeros vanish and long IDs end in 000
This is a separate problem: Excel turns digit strings into numbers, and numbers keep at most 15 significant digits.
- ZIP codes and product codes such as
02134 or 00123 lose their leading zeros.
- 16-digit card numbers and long order IDs get their last digits replaced by
0 and are shown as 1.23457E+15.
The conversion happens the moment the file opens, and once saved the lost digits are gone for good; you have to go back to the original CSV. Importing those columns as Text (step 3 of Fix 1) keeps them intact.
Fix 3: convert to xlsx in one step
xlszip's converter handles all of this at once:
- detects the encoding automatically, trying UTF-8, GBK (GB18030) and Big5 in turn;
- detects comma, tab, semicolon and pipe separators;
- keeps numbers longer than 15 digits, codes with leading zeros and values that look like scientific notation as text, so nothing is lost;
- outputs a standard xlsx, or a UTF-8 CSV with a BOM that Excel opens with a double-click.
Old .xls, .xlsb and .ods files can be converted to .xlsx on the same page.