📊 Tutorial · 6 min read
Fix Garbled CSV in Excel: UTF-8, BOM & Encoding Issues Explained
You download a CSV report, double-click it, and instead of "Müller" you see "Müller". Instead of Chinese text you see "䏿–‡". Instead of "100 €" you see "100 €".
This is the single most common CSV problem on earth — and it is not data corruption. Your file is fine; Excel is simply opening it with the wrong character encoding. Here's why it happens and the three fixes that solve it in under two minutes.
Why Does My CSV Look Like Garbage in Excel?
A CSV file is plain text, and plain text has no memory of which encoding it was saved in. The characters in your file are stored as UTF-8 bytes, but older Excel builds (and Excel on some Windows regional settings) assume the file is ANSI / Windows-1252 — a legacy encoding with a different byte map. Every special character gets translated into the wrong symbol, producing the classic mojibake pattern:
- UTF-8 text opened as Windows-1252: é becomes é, € becomes €, Chinese becomes 䏿–‡.
- Windows-1252 text opened as UTF-8: the opposite mess — é becomes a single replacement character (�).
- UTF-8 without BOM opened by Excel: Excel guesses the encoding, and its guess is often wrong.
The good news: the underlying data is untouched. Any tool that reads UTF-8 correctly — including our free AI CSV analyzer — will show the file perfectly. The problem lives only in the Excel opening step.
Fix 1: Import the CSV Instead of Double-Clicking It (Best Fix)
Double-clicking hands the file to Excel's automatic (bad) guesser. The import wizard lets you choose the encoding explicitly:
- In Excel, go to Data → From Text/CSV (Excel 2016+, Microsoft 365, and Excel for Mac).
- Select your .csv file and click Import.
- In the preview dialog, set File Origin to 65001: Unicode (UTF-8).
- Check the preview — your text now displays correctly. Choose the delimiter (usually Comma), then click Load.
If your file was actually saved as ANSI (for example, it came from an old Windows program), choose 1252: Western European (Windows) instead. The live preview shows the result instantly, so you can't get it wrong.
Fix 2: Add a UTF-8 BOM So Excel Stops Guessing
A BOM (byte order mark) is a tiny invisible marker — the bytes EF BB BF — placed at the start of a UTF-8 file. It tells Excel "I am UTF-8, don't guess." This is why you should always export or convert to CSV UTF-8 (BOM) whenever the option exists, and why our guide on converting Excel to CSV recommends the BOM variant.
Already stuck with a BOM-less file? Add a BOM without installing anything:
- Open the CSV in Notepad++ (Windows) — free. If the text looks correct, click Encoding → Convert to UTF-8-BOM, then save.
- Or open the file in Visual Studio Code and click the encoding label in the bottom-right bar (it shows "UTF-8") → Save with Encoding → UTF-8 with BOM.
- On macOS, TextEdit can't do BOM easily — use the terminal:
sed -i '1s/^/\xef\xbb\xbf/' file.csvadds a BOM to the first line.
Once saved, double-clicking the file in Excel opens it correctly — forever, on any computer.
Fix 3: Re-Encode the Whole File (For Already-Garbled CSVs)
If the file is already sitting in the wrong encoding, convert it once and be done:
- Google Sheets round-trip: upload the CSV to sheets.google.com (Google auto-detects UTF-8), then File → Download → Comma-separated values (.csv). The downloaded copy is clean UTF-8.
- Online encoding converters (search "UTF-8 to UTF-8 BOM converter"): upload, pick target encoding, download. Avoid this for confidential data.
- If your data is already readable in Google Sheets or any modern tool, you can skip Excel entirely: run your analysis where the file parses cleanly, then convert the results back to Excel if you need a .xlsx deliverable.
And a heads-up: if your CSV needs cleanup beyond encoding — stray quotes, mixed delimiters, duplicate rows — work through our dirty CSV cleaning guide before you load it into any system.
How to Prevent Garbled CSVs From Now On
- Export as UTF-8 with BOM from the source system whenever the option exists (look for "CSV UTF-8" in Excel, "UTF-8" in database exports).
- Standardize on UTF-8 everywhere: modern CRMs, databases, and AI tools all speak UTF-8 natively. When you hand a file to a colleague, add a BOM so their Excel behaves too.
- Import, don't double-click. Even with a BOM, using Data → From Text/CSV with File Origin set to UTF-8 is the bulletproof habit.
Frequently Asked Questions
Why does my CSV show question marks (�) instead of characters?
The file contains characters that don't exist in the encoding Excel used to open it — usually a UTF-8 file opened as ANSI, or a file saved as ANSI that truly can't represent those characters. Re-import with File Origin set to 65001 (UTF-8). If the data was saved as ANSI, the characters may already be lost and you need the original file.
What exactly is a UTF-8 BOM?
A BOM is a 3-byte marker (EF BB BF) at the start of a UTF-8 file. It is not visible text — it just signals "this file is UTF-8" to programs like Excel. Files saved as "CSV UTF-8 (BOM)" open correctly with a double-click; files saved as plain "CSV UTF-8" sometimes don't on older Excel.
Can I fix a garbled CSV inside Excel without other software?
Yes — if the file is genuinely UTF-8. Use Data → From Text/CSV and set File Origin to Unicode (UTF-8). That fix requires no extra software at all. You only need Notepad++ or similar if the file has no BOM and you want double-click to work in the future.
Does Google Sheets open UTF-8 CSV files correctly?
Yes. Google Sheets auto-detects UTF-8 and displays Chinese, accented characters, and emoji correctly — no BOM needed. That's why the Sheets round-trip is a reliable fix when Excel keeps mangling a file.
My CSV opened fine yesterday but is garbled after re-saving in Excel — why?
Excel re-saved your file as ANSI/Windows-1252. When you edit and save a CSV, Excel silently changes the encoding. Solution: after editing, use File → Save As → CSV UTF-8 (Comma delimited), or do your editing in a tool that preserves UTF-8. For data analysis, you can also skip round-tripping entirely and chat with the file in DataAnalyzer AI.
NoCodeCSV Team
Updated September 06, 2026 · Practical guides by the NoCodeCSV team.
Go further with AI data tools
NoCodeCSV handles the basics for free. When your data work grows, these tools pair well with it:
- Stack AI — build AI workflows that process your CSVs automatically, end to end. Try Stack AI
- Softr — turn your cleaned data into customer-facing apps and portals without code. Try Softr
- Toggl Track — track time spent on data projects and client work. Try Toggl
Some links above are affiliate links — if you buy through them we may earn a commission at no extra cost to you.
Encoding Headache Over? Analyze the Data
Our AI reads UTF-8 CSV files perfectly — upload, ask, get answers and charts.
Related reading
Data Cleaning — other guides that pair well with this one.
- How to Clean Dirty CSV Data
- Remove Duplicates from CSV
- Change CSV Delimiter
- Extract Email Addresses from a CSV
Browse all guides in the NoCodeCSV blog.