CSViser ADVISER

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.