CSV Garbled in Excel? How to Fix It: UTF-8 With BOM vs Other Encodings
You downloaded a CSV from a web service, double-clicked it, and Excel showed “Café, München” instead of “Café, München”. The CSV isn't broken: Excel simply guessed the wrong character encoding. This guide explains why it happens, how to open the CSV you have now so it reads correctly, how to save so it never happens again (UTF-8 with BOM, or a legacy encoding), and which characters are lost when you convert.
Excel reads a CSV without a BOM in your system's legacy encoding
Almost every CSV exported by modern web services and systems is UTF-8. Excel on Windows, however, opens a double-clicked CSV in the system's legacy “ANSI” code page unless the file starts with a marker saying “this is UTF-8” (the BOM). On English-language Windows that code page is Windows-1252. Reading UTF-8 accented letters as Windows-1252 garbles them like this.
| Original | How Excel shows it (UTF-8 read as Windows-1252) |
|---|---|
| Café,München | Café,München |
| Résumé,Zoë | Résumé,Zoë |
| José,São Paulo | José,São Paulo |
| €25 – “quoted” | €25 – “quotedâ€� |
The BOM (byte order mark) is the three bytes EF BB BF at the very start of the file, and it isn't displayed. If the BOM is there, Excel reads the file as UTF-8 correctly. So a CSV saved as “UTF-8 with BOM” won't be garbled even when double-clicked. It's also why a CSV containing only plain English letters and digits never garbles: those bytes are identical in UTF-8 and Windows-1252, so only accented letters, symbols such as € and curly quotes, and non-Latin scripts are affected. On Windows set to other languages the legacy encoding differs (Shift_JIS for Japanese, GBK for Chinese, CP949 for Korean), but the mechanism is the same.
How to open a garbled CSV correctly
- 1
Import it from Excel's Data tab
Open a blank workbook, go to the “Data” tab → “From Text/CSV” and choose the file. In the preview, set “File Origin” to “65001: Unicode (UTF-8)”, check that the text reads correctly, then load it.
- 2
Convert it to UTF-8 with BOM, then open it
Drop the file into “Files & CSV” in the Mojibake Fixer & Decoder and it detects the encoding, whether there's a BOM, and the line endings. Save it with “UTF-8 (with BOM)” and the file opens in Excel without garbling, even by double-clicking.
- 3
Open it in Google Sheets
Google Sheets and Numbers on the Mac read UTF-8 CSV files as they are. That's fine if you only need to view the contents, but a CSV saved in a legacy encoding may be garbled the other way.
If all you have is the garbled text (someone pasted the CSV contents into an email, say), the original file is always the best source. You can paste the text into “Fix mojibake”, which lists possible readings; for “Café,München” one candidate is “Café,München” (UTF-8 read as Latin-1). The tool is designed mainly for Japanese, so pick the candidate that reads correctly. Anything already turned into “�” can't be restored from the text alone.
Choosing how to save for the recipient
| Recipient | Recommended encoding | Why |
|---|---|---|
| People who open it in Excel on Windows | UTF-8 (with BOM) | No garbling on double-click, and emoji and every script are kept |
| Old business systems and accounting software | The encoding the import specifies (often the local legacy encoding) | Some importers can only read a specific legacy encoding |
| Programs, databases, APIs | UTF-8 (no BOM) | Prevents the BOM from sticking to the first column name |
| Mac, Google Sheets | UTF-8 | Readable with or without a BOM |
When saving in Excel, choose the file type under “Save As”. “CSV UTF-8 (Comma delimited)” saves UTF-8 with a BOM; “CSV (Comma delimited)” saves in the system's legacy code page (Windows-1252 on English Windows). For line endings, CRLF is standard for Windows software and LF for Mac, Linux and programs. CSVs exported from web tools, such as a traffic-count tally made with a phone counter, also open straight in Excel when they're UTF-8 with BOM (how to do a traffic count and build the tally sheet).
Characters that disappear when you convert to a legacy encoding
UTF-8 can represent almost every character, but legacy encodings can only represent a limited set. When you convert a UTF-8 CSV to one, characters it can't represent become “?” and can't be recovered. For Windows-1252, it looks like this.
| Characters | In Windows-1252 | Note |
|---|---|---|
| é · ü · ñ · ß | Representable | Western European accented letters are included |
| € · ™ · “ ” (curly quotes) | Representable | Included in the 0x80–0x9F range, but may garble in strict ISO-8859-1 |
| ① · Ⅲ (circled and Roman-numeral characters) | Not representable | Become “?” |
| Chinese, Japanese and Korean text | Not representable | Use UTF-8 if names in these scripts may appear |
| Emoji such as 🍣 | Not representable | Become “?” |
The tool's “Files & CSV” can also save in Shift_JIS for Japanese systems, and it lists any characters that can't be written before saving. For other legacy encodings, save from Excel and check the result. If a name would change because a letter can't be represented, confirm with the receiving side before rewriting it: an altered name can be treated as a different person. Japanese name characters that often garble, such as 髙, 﨑 and 𠮷, are covered in how to type 髙, 﨑 and 𠮷 and why they garble.
FAQ
- Why does my CSV show garbled characters in Excel?
- Because Excel is reading a CSV saved in UTF-8 as your system's legacy encoding (Windows-1252 on English Windows). Excel on Windows opens a CSV without a BOM in that encoding. Save it again as UTF-8 with BOM, or import it from the Data tab with the encoding set to UTF-8, and it won't garble.
- What's the difference between UTF-8 with and without a BOM?
- Whether the file starts with the three bytes EF BB BF (the BOM). The characters are the same, but Excel reads the file as UTF-8 when the BOM is there. When passing the file to programs or databases, a BOM can stick to the first column name, so no BOM is better.
- I was asked for a CSV in a specific legacy encoding. How do I convert it?
- In Excel, “CSV (Comma delimited)” saves in the system's legacy code page (Windows-1252 on English Windows; Shift_JIS, GBK or CP949 on Japanese, Chinese or Korean Windows). For Shift_JIS you can also use “Files & CSV” in the Mojibake Fixer & Decoder. Characters the encoding can't represent, such as emoji, become “?”, so fix them first.
- My CSV is garbled on a Mac.
- Excel for Mac can also garble a UTF-8 CSV without a BOM. Import it from the Data tab with the encoding specified, or convert it to UTF-8 with BOM. Conversely, a legacy-encoded CSV from Windows can garble in apps that expect UTF-8, such as Numbers; in that case convert it to UTF-8.
Tools in this article
Related articles
Breathing Techniques: How to Do 4-7-8, Box Breathing and Resonance Breathing (and Which to Choose)
A night when you can't fall asleep, the minutes before an exam or interview, a wave of irritation that won't settle. People tell you to “take a deep breath,” but how many seconds should you breathe in and out, and which technique should you use? This guide explains five common breathing techniques — 4-7-8 breathing, box breathing, resonance breathing, the physiological sigh and belly breathing — with exact timings, and compares them by breaths per minute and by the exhale-to-inhale ratio. It also covers why breathing calms you down, which technique to pick for sleep, nerves or anger, how to fix the problem when it feels uncomfortable, how to measure your resting breathing rate, and when not to do breathing exercises.
Read article →What Is the Zengin Format? How to Build Japanese Bulk and Payroll Transfer Files (120-Byte Layout)
When a company in Japan sends dozens of bank transfers at once through internet banking, the bank usually asks for a file in the Zengin format. The Zengin format is the transfer-data layout defined by the Japanese Bankers Association (Zengin-kyo): fixed-length text where every line is exactly 120 bytes, built from four record types — header, data, trailer and end. This guide covers the difference between bulk transfers (sogo furikomi), payroll and bonus transfers, every field and its byte position, the rules for writing payee names in half-width katakana and the corporate abbreviations カ) and (カ, how to convert Japan Post Bank account numbers, how to build the file from Excel or CSV, and what causes import errors — in the order people actually get stuck.
Read article →How to Calculate Gacha Odds: How Many Pulls Until You Get It, Pity, 50/50 and Max Copies
You assumed a 1% drop rate meant you'd get the unit within 100 pulls, but it never showed up. That isn't exceptionally bad luck: the chance of getting at least one copy from 100 pulls at 1% is only about 63% to begin with. This guide covers the formula for the chance of getting a unit in n pulls, a drop rate × pulls table, how many pulls it takes for half of players or 9 in 10 players to get it, the average and worst-case pulls with hard pity and a 50/50 rate-up with a guarantee, carried-over pity, how many pulls max copies (7) take, and how many blind boxes or random pin badges you need to complete a set, all with calculated numbers.
Read article →