Fix CSV encoding (UTF-8 with BOM)

Exported a CSV from Shopify, QuickBooks or your bank and Excel shows é, ’ or question marks? This tool detects the file encoding in your browser and rewrites it as UTF-8 with BOM, which Excel reads correctly, or saves it as .xlsx. Nothing is uploaded.

Runs in your browser · nothing is uploaded

Your file is processed only inside this browser tab and is never sent to any server. Close the page and the data is gone.

How it is calculated

The tool inspects the raw bytes in order:

  1. Byte-order markEF BB BF means UTF-8 with BOM; FF FE / FE FF mean UTF-16. With a BOM present, Excel picks the right encoding on its own.
  2. Strict UTF-8 decode — without a BOM, every byte sequence is checked against UTF-8 rules. If nothing violates them, the file is UTF-8 without BOM: the classic "exported from a web app, broken in Excel" case.
  3. Legacy fallbacks — if it is not UTF-8, the tool tries CP949 (Korean Windows) and finally Windows-1252.
  4. Rewrite — the text is re-encoded as UTF-8 and a BOM is prepended, so Excel, Google Sheets and web importers all read the same characters.

The delimiter (comma, tab, semicolon) is auto-detected by PapaParse from the first rows. Cell values are never altered — numbers, dates and quotes stay as they were.

Examples

SituationDetectionDownload
Shopify order export shows José in ExcelUTF-8 (no BOM)CSV (UTF-8 BOM) → opens correctly
CSV saved from Excel breaks accents when uploaded to a web appWindows-1252CSV (UTF-8 BOM) → works in both
Order ID 202609060001234 displays as 2.02609E+14any.xlsx (all cells stored as text)

Common mistakes

FAQ

Is my file uploaded anywhere?

No. The file is read and converted entirely in your browser tab. Open the Network tab in developer tools and you will see no upload request. Close the page and the data is gone.

Why does Excel show é or ’ instead of é or ’?

Excel on Windows opens a CSV without a byte-order mark (BOM) using the system code page (Windows-1252 in most English locales), while most web exports are UTF-8 without BOM. The bytes are fine; the two programs simply disagree on how to read them.

Should I download the CSV (UTF-8 BOM) or the .xlsx?

Choose CSV if you will import the file into another system (shipping carrier, accounting software). Choose .xlsx if a person will open it in Excel — it also stores every cell as text, so order numbers do not turn into 1.23E+11 and leading zeros in ZIP codes and phone numbers survive.

Can it convert UTF-8 back to a legacy code page?

Not yet. Save as .xlsx here, then in Excel use Save As → "CSV (Comma delimited)", which writes the legacy encoding your locale uses.

What is the size limit?

50 MB. Everything runs in browser memory, so split larger exports first. There is no row limit; the preview shows the first 20 rows.

Related tools