Shopify CSV Encoding Errors: BOM, Curly Quotes, and Garbled Characters Explained

Published 2026-05-10

You open a Shopify product export in Excel, change a few prices, save, reimport. Shopify rejects it: "Missing headers: Title." The Title column is right there. Or your product descriptions come back with garbled characters where accented letters used to be. Or you get "illegal quoting" on a file that looks perfectly clean.

Every time, the cause is encoding corruption that happens when the file passes through Excel. The CSV looks fine in a spreadsheet. The bytes underneath are wrong.

1. BOM: three invisible bytes that break your header

When Excel saves a CSV as "UTF-8," it prepends a byte order mark to the start of the file. That is three bytes (EF BB BF) you cannot see in Excel, Google Sheets, or most text editors. Shopify reads the first header as "\xEF\xBB\xBFTitle" instead of "Title" and throws "Missing headers: Title."

This is the single most common Shopify CSV import error. The fix: open the file in a plain text editor (Notepad, VS Code, TextEdit on Mac) and re-save as "UTF-8 without BOM." On Windows, Notepad's Save As dialog has a UTF-8 option that omits the BOM since Windows 10.

The annoying part: the BOM comes back every time you save from Excel. So the cycle is export, edit, strip BOM, reimport. Every time.

2. Curly quotes: Excel replaces your punctuation without asking

Excel's autocorrect swaps straight quotes (" and ') for curly ones the moment you edit a cell. It does not ask.

Shopify's CSV parser uses straight quotes as field delimiters. A curly quote in a product description throws off the parser. Fields shift. You get "illegal quoting" errors, or worse: your product title ends up in the description column and your price lands in the vendor field, all without an error message.

Fix: find-and-replace curly quotes with straight ones before reimporting. In Google Sheets, Ctrl+H works. In a text editor, replace [\u201c\u201d] with " and [\u2018\u2019] with '.

While you are at it: Excel also converts long barcodes to scientific notation (1.23457E+12). That one is permanent, the original digits are gone. Format barcode columns as Text before opening the file.

3. Garbled characters: what happens when Excel guesses your encoding wrong

Shopify exports UTF-8. Excel on Windows assumes CSV files are Windows-1252. Characters that exist in UTF-8 but not in Windows-1252 (accented letters like é and ü, CJK characters, emoji) get replaced with garbage: é instead of é, � instead of anything it cannot map.

Save the file and the corruption is baked in. Reimport it and Shopify stores the garbage. The original characters are gone from the file.

To avoid this: when opening a UTF-8 CSV in Excel, go through File > Import and pick UTF-8 in the encoding wizard. Do not double-click the file. Or use Google Sheets, which handles UTF-8 without any setup.

If your file is already corrupted, re-export from Shopify. The data in Shopify's database is still correct. Just do not open the new export in Excel the same way.

How to check your file's encoding

Mac: open Terminal, run "file -I yourfile.csv". It tells you the encoding and whether a BOM is present.

Windows: open the file in Notepad++. The encoding label is in the bottom right corner. If it says "UTF-8-BOM," there is your problem.

VS Code on any platform: bottom right of the status bar shows the encoding. Click it to re-save as something else.

Fixing all three at once

If you do the export-edit-reimport cycle regularly, you hit these problems every time. csvtocsv.com/shopify-reimport strips the BOM, replaces curly quotes with straight ones, and re-encodes as clean UTF-8. One pass, all three fixed.

Fix CSV encoding for Shopify