ANSI vs UTF-8 for CSV Files: Which One Should You Pick?
The quick answer: when Excel’s Save As menu offers both “CSV (Comma delimited)” and “CSV UTF-8”, it is asking you to pick an encoding — the rule that turns characters into bytes. Plain CSV saves in ANSI (on Windows, the Windows-1252 code page), which stores only about 250 Western-European characters. CSV UTF-8 saves in UTF-8, which stores every character there is. Choose UTF-8 unless your data is pure A–Z English and a downstream tool specifically requires ANSI. ANSI is fine for plain text, but it silently destroys accents, currency symbols and emoji.
What Excel’s two CSV options actually mean
The two options differ in exactly one thing: character encoding. A CSV is plain text, and an encoding decides which byte or bytes represent each character. “CSV (Comma delimited)” writes the file in your system’s ANSI code page — on a Western-European Windows install that is Windows-1252. “CSV UTF-8” writes it in UTF-8, the encoding the modern web is built on. The columns, commas and rows are identical; only the bytes for each character change — which is why plain English looks the same either way and accented names do not.
Microsoft’s guide to importing and exporting text and CSV files lists both side by side, and the near-identical names are a well-known source of confusion: people pick CSV, lose their accents, and never learn why.
ANSI vs UTF-8 at a glance
UTF-8 wins on every row with a special character; the two tie only on plain ASCII.
| Feature | ANSI (Windows-1252) | UTF-8 |
|---|---|---|
| Bytes per character | 1 | 1–4 |
| Characters it can store | Western-European only | Every character |
| Western accents (é ñ ü), €, curly quotes | Stored — but break if the file is later read as UTF-8 | Fine |
| Emoji, Cyrillic, Greek, CJK, Polish ł… | Can’t be stored — become ? | Fine |
| Excel Save As name | “CSV (Comma delimited)” | “CSV UTF-8” |
| Safe default | Only for pure ASCII | Yes |
What ANSI silently destroys
ANSI stores one byte per character, so it has only 256 slots — the printable ones cover just the Western-European alphabet. Accented letters such as é, ñ and ü, the euro sign and curly quotes have a slot in Windows-1252 and survive on a matching system. Everything else does not: Cyrillic, Greek, Arabic, every CJK character, almost all emoji and many Eastern-European letters such as Polish ł. Saved to ANSI those become a literal question mark ?, and no later tool can recover them — the character was never written to the file.
Even for characters ANSI can hold there is a trap: a file saved as ANSI and then read as UTF-8 — as most tools now assume — turns café into café, because the two sides disagreed on the code page. Our guide on question marks instead of letters covers both cases.
Which one should you pick
For almost every file, choose CSV UTF-8. It stores every character, it is the default for databases, programming languages and other tools, and costs nothing on plain English — a pure A–Z, 0–9 file is byte-for-byte identical in both. Reach for plain “CSV (Comma delimited)” only when both of these hold:
- Your data is nothing but basic ASCII — no accents,
€, curly quotes or emoji. - A downstream tool documents that it needs ANSI input.
Some older line-of-business and accounting imports genuinely require ANSI; otherwise it only adds risk. Already saved a file the wrong way? See how to change a CSV’s encoding to UTF-8 and how to save an Excel file as CSV UTF-8.
The one catch: UTF-8’s BOM
Excel writes its UTF-8 CSVs with a BOM, and a few importers reject it. This is the one honest caveat to UTF-8 from Excel: it prepends a byte order mark — three invisible bytes (EF BB BF) at the start of the file. It helps Excel re-open the file as UTF-8, and most tools ignore it — but some databases, scripts and older importers show a stray character before your first column header. If that happens, strip the BOM rather than falling back to ANSI — our UTF-8 BOM in Excel guide covers when to keep it and when to remove it.
How to check what you have
If you are not sure which encoding a file is in, do not guess. ANSI and UTF-8 look identical for plain text and only diverge on special characters, so reading the raw bytes is the only reliable check — a BOM or multi-byte sequence means UTF-8, lone high bytes mean Windows-1252.
Not sure if your CSV is ANSI or UTF-8?
Drop the file into our free encoding checker. It reads the raw bytes in your browser — nothing uploaded — and reports whether the file is ANSI/Windows-1252 or UTF-8 and whether it carries a BOM.
Open the encoding checker →Frequently asked questions
What is the difference between ANSI and UTF-8 in a CSV?
They are two ways of turning characters into bytes. ANSI on Windows is the Windows-1252 code page: one byte per character, only about 250 Western-European characters. UTF-8 uses one to four bytes and covers every character in Unicode. In Excel’s Save As, “CSV (Comma delimited)” writes ANSI and “CSV UTF-8” writes UTF-8. The difference only shows up on accents, symbols, emoji or non-Latin scripts.
Is CSV UTF-8 better than CSV?
For almost everyone, yes. UTF-8 stores every character, so accents, the euro sign, curly quotes and emoji all survive. Plain “CSV (Comma delimited)” saves in ANSI, which drops most of those or shows a question mark. Prefer plain CSV only when a downstream tool demands ANSI and your data is pure ASCII English.
When is ANSI okay for a CSV?
ANSI is fine when your data is only unaccented A–Z letters, digits 0–9 and basic punctuation and something downstream expects ANSI. There the bytes match what UTF-8 would write anyway, so nothing is lost. The moment a single accented name, currency symbol or emoji appears, ANSI can no longer hold it safely.
Why does CSV UTF-8 add a BOM?
Excel writes UTF-8 CSVs with a byte order mark (BOM): three bytes (EF BB BF) at the start, flagging it as UTF-8 so Excel re-opens it correctly. Most tools ignore it, but some databases, scripts and older importers show a stray character before your first value. If that happens, strip the BOM — see the BOM guide.
Sources: Microsoft’s guide to importing and exporting text and CSV files documents Excel’s two CSV Save As options. Windows-1252 and UTF-8 are standard character encodings; the ~250-character ceiling is inherent to any single-byte code page.