Convert CSV encoding to UTF-8
Upload a CSV with broken encoding — CSViser auto-detects the source charset (Windows-1251, CP1252, ISO-8859-1, and more) and converts everything to valid UTF-8.
Upload your CSV with encoding issues
CSV, XLSX, or JSON — any size
Free account — takes 10 seconds to sign up
After upload: go to Fix issues tab → check Normalize file encoding to UTF-8 → Apply.
Why does CSV encoding break?
UTF-8 is the universal standard for text today, but many tools still export in legacy encodings.
Microsoft Excel on Windows defaults to the system codepage — Windows-1251 for
Cyrillic locales, Windows-1252 (CP1252) for Western European, or regional
variants like ISO-8859-2 for Central European characters. When you open that file in a tool
that expects UTF-8, every non-ASCII character turns into garbage: им'Ñ instead
of ім'я, or é instead of é.
Database exports add another wrinkle — older MySQL and PostgreSQL configurations store data in
latin1 or utf8mb3, and the CSV dump inherits the connection charset.
CRM and ERP systems are often the worst offenders: SAP, 1C, and legacy Salesforce exports have
been known to ship files in Windows-1251 with no indication in the filename or header.
How CSViser fixes it
CSViser uses the charlock_holmes library (a Ruby binding around the ICU character-detection engine) to identify the source encoding from the byte patterns in your file. It does not guess — it reads the actual byte signatures and scores every candidate encoding. Once the source is confirmed, the file is re-encoded to UTF-8 in a single pass. The byte-order mark (BOM) that Excel adds to some UTF-8 exports is stripped at the same time.
The converted file is re-validated against RFC 4180 after the fix, so you know immediately whether the result is structurally valid — not just re-encoded.
Common encodings we handle
- Windows-1251 — Cyrillic (Russian, Ukrainian, Bulgarian, Serbian)
- Windows-1252 / CP1252 — Western European (most Excel exports)
- ISO-8859-1 / Latin-1 — Western European (legacy web and database exports)
- ISO-8859-2 — Central European (Polish, Czech, Slovak, Hungarian)
- KOI8-R / KOI8-U — Cyrillic (older Unix systems)
- UTF-8 with BOM — valid bytes but broken for most parsers
Frequently asked questions
My file looks fine in Excel but breaks when I import it into my app. Why?
Excel displays the file correctly because it uses the same system codepage to read it back. Your app expects UTF-8 and sees raw bytes it can't interpret. Converting to UTF-8 fixes the mismatch permanently.
Will the fix change any of my data?
No. Only the byte representation changes — the characters themselves stay identical. The content of every cell, including numbers and dates, is preserved exactly.
What if the auto-detection gets the encoding wrong?
ICU-based detection is highly accurate for files over a few hundred bytes with non-ASCII characters. If your file is very short or nearly all ASCII, detection confidence may be low — in that case CSViser reports the detected encoding so you can verify it before applying the fix.