WooCommerce import: Delimiter & Character Encoding Issues
;) delimiter while WooCommerce expected a comma. If accented letters, umlauts, Cyrillic, or currency symbols turn into garbled text like é or п, the file was saved in legacy ANSI/Windows-1252 instead of UTF-8. To fix delimiter issues, expand Advanced options in the WooCommerce importer and type ;. To fix broken text, re-save your spreadsheet explicitly as CSV UTF-8 (Comma delimited).Applies to the built-in WooCommerce CSV importer (Products → Import). Verified against WooCommerce 11.1.2 (on WordPress 7.1.2).
Which cause is yours?
| What you observe | Most likely cause |
|---|---|
| Column mapping screen shows only 1 column with semicolon-separated text | 1. Semicolon delimiter (regional Excel setting) |
| Special characters, umlauts (ä, ö, ü) or accents (é, à) turn into mojibake | 2. Non-UTF-8 encoding (Windows-1252 / ANSI) |
| First column header (e.g. ID or Type) fails to match or shows unknown character | 3. UTF-8 Byte Order Mark (BOM) signature |
| Descriptions spill across multiple rows; prices shift into wrong columns | 4. Unescaped quotation marks in HTML descriptions |
1. CSV is crammed into one column: Semicolon vs Comma delimiter
In continental Europe and many other regions (Germany, France, Italy, Spain, Poland, Ukraine, etc.), Excel uses a semicolon (;) as the default CSV field separator because the comma (,) is reserved as the decimal separator for currency and numbers.
By default, the WooCommerce CSV importer assumes a standard comma delimiter. When given a semicolon-delimited file, it cannot find any columns and treats the entire line as a single field.
Fix in WooCommerce:
- On the first screen of the importer (Products → Import), click on Advanced options.
- In the CSV delimiter field, replace the comma with a semicolon (
;). - Click Continue. The mapping screen will now correctly separate every column.
Check your delimiter and encoding automatically
Drop your CSV or Excel file into CatalogDock. The free in-browser checker automatically detects whether your file uses commas or semicolons, validates UTF-8 encoding down to the exact byte, and previews your columns before you import.
Open the free checker →Runs in your browser · No files uploaded · Never connects to your store
2. Broken characters and mojibake: UTF-8 vs ANSI encoding
When you click Save As → CSV in older versions of Microsoft Excel on Windows, Excel saves the file in your operating system’s legacy ANSI code page (typically Windows-1252 in Western Europe or Windows-1251 in Eastern Europe) rather than modern UTF-8.
When WooCommerce reads these files using UTF-8, multi-byte characters cannot be decoded:
- French/Spanish accents:
cafébecomescafé - German umlauts:
GrößebecomesGröße - Currency symbols:
€or£become question marks or corrupted symbols - Cyrillic characters turn into strings of unreadable symbols
Fix in Excel:
- In Excel, click File → Save As.
- In the Save as type dropdown, choose CSV UTF-8 (Comma delimited) (*.csv). Do not choose the plain "CSV (Comma delimited)" option.
- Alternatively, open your CSV in Windows Notepad, click File → Save As, and ensure Encoding is set to UTF-8 before saving.
3. Byte Order Mark (BOM) in UTF-8 files
When Excel saves a file as UTF-8, it frequently prepends a 3-byte signature known as a Byte Order Mark (EF BB BF) to the very beginning of the file.
While modern WooCommerce core includes logic to strip the BOM on import, certain server environments, older WooCommerce versions, or third-party import add-ons will misread the first header name. For example, Type becomes Type, causing the first column to fail automatic mapping.
Fix: CatalogDock automatically detects and strips the BOM while keeping your file formatting intact. You can also open the file in VS Code or Notepad++ and choose "Encoding → UTF-8 without BOM".
4. Columns shifting: Quotes and newlines in HTML descriptions
Product descriptions frequently contain HTML formatting, bullet points with line breaks, and quotation marks (such as dimension notations like 24" Monitor).
Under the standard CSV specification (RFC 4180), any field containing line breaks or commas must be enclosed in double quotes, and any quote inside the text must be escaped by doubling it ("").
SKU,Name,Description,Regular price MON-01,Monitor,High quality 24" display with 4K resolution,299.00 # BAD: unescaped quote breaks CSV parsing
SKU,Name,Description,Regular price MON-01,Monitor,"High quality 24"" display with 4K resolution",299.00 # OK: field quoted and inner quote doubled
If quotes are not properly escaped, the parser treats the quote as the end of the field, shifting your description text into the price column and corrupting all subsequent rows.
Fix: Use standard spreadsheet applications (Excel, LibreOffice) to export your file, or import directly from an Excel .xlsx file where cell boundaries are explicitly preserved without quotation ambiguities.
Still failing?
- Server timeouts during import: If your file has correct encoding but the server crashes with a 504 error, see our guide on WooCommerce import 504 timeout & safe batches.
- Variations not appearing: Review our guide on WooCommerce variations not linking or showing.
- Duplicate SKU errors: See our guide on "Invalid or duplicated SKU" causes & fixes.
Related: Full CatalogDock Documentation · Supported file formats · 504 Timeout troubleshooting