The short answer
"My CSV is broken" is almost always one of three unrelated problems, and each has its own fix: garbled characters mean an encoding mismatch, everything squeezed into one column means a delimiter mismatch, and 007 turning into 7 means Excel converted your text to numbers. A single file can have any combination — our test file below deliberately contains all three traps, plus commas, quotes and a line break inside fields, in three encodings you can download.
| Symptom | Cause | Fix | Verified here |
|---|---|---|---|
| 品名 shows as 鍝佸悕 (or æŸ?), other cells unreadable | The file's bytes are not in the encoding Excel guessed (double-click uses the system ANSI code page, GBK on Chinese Windows) | Re-export as UTF-8 with BOM, or import in Excel with encoding UTF-8 | Yes — real Excel open test + CSV cleaner export |
| Whole rows land in one column (or rows split at random commas) | Delimiter mismatch: the file uses ; but Excel splits at , (or the reverse on European locales) | Pick the right delimiter on import, or let the CSV cleaner auto-detect it | Yes — real Excel open test + CSV cleaner |
| 007 becomes 7, order numbers lose zeros | Excel parses numeric-looking cells on open — happens with every encoding | Import and set that column's format to Text; nothing in the file itself is lost | Partly — the loss is verified in real Excel; the wizard fix follows Microsoft's documented steps (wizard UI not machine-tested here) |
The test file (and what really happened in Excel)
We made one original 4×4 demo table — Chinese and English names, a comma inside a quoted field (北京, 上海 仓发货), doubled quotes (含"双层"包装), a line break inside a field, and order numbers 007 / 0210 / 00 — saved in three encodings plus a semicolon variant, all downloadable below. Then real desktop Excel (Windows 11, Chinese locale, ANSI code page 936/GBK) opened each file exactly as a double-click would, and we recorded what was actually displayed:
| File | 品名 header showed | First order number showed | Rows × columns parsed |
|---|---|---|---|
| utf8-nobom.csv | 鍝佸悕 — mojibake | 7 (zeros gone) | 4 × 4 (text unreadable) |
| utf8-bom.csv | 品名 — correct | 7 (zeros gone) | 4 × 4 |
| gbk.csv | 品名 — correct (on a GBK-locale machine) | 7 (zeros gone) | 4 × 4 |
| semicolons.csv | header merged into one cell | whole line as text | 5 × 2 — broken parse |
Three lessons fall straight out of this table. One: the same file is fine or garbage depending on the encoding guess — GBK files open correctly on Chinese-locale Windows but break on UTF-8-default platforms, and UTF-8-without-BOM files break exactly the same way here (the UTF-8 bytes read as GBK produce 鍝佸悕, the textbook mojibake for 品名). Two: the BOM fixes encoding but nothing else — 007 became 7 in every single file, because Excel converts numeric-looking cells after decoding. Three: a different delimiter quietly demolishes the table structure instead of raising an error.
Fix 1: garbled encoding — verified with the CSV cleaner
The CSV cleaner runs in your browser and never uploads your file. Its file reading is what makes the rescue work: it first tries UTF-8, and when that produces replacement characters it re-reads the same bytes as GB18030. With our GBK file this is exactly what happened — the pasted preview came out as clean Chinese (编号/品名…, no replacement characters), while Excel had needed the file to be GBK already. The tool does not claim to auto-detect every encoding on earth: its documented support is UTF-8 (with or without BOM) and GBK/GB18030. Files in other legacy encodings need conversion at the source.
- Add the garbled-source file. Open the CSV cleaner and drop the original file (keep the original — see the warning below). A GBK or UTF-8 file decodes automatically; you can also paste text directly.
- Apply and check the preview. Press Apply. Our GBK file showed 4 rows × 4 columns with every value readable — including the quoted comma, the doubled quotes and the line break inside the 规格 cell. The preview shows the first 50 rows; the export covers everything (limits: 5 MB, 100,000 rows).
- Export and get a BOM for free. Press Export CSV. The download is always UTF-8 with BOM and CRLF line breaks — exactly what double-click Excel expects on Chinese Windows. Our export was byte-checked: 247 bytes starting with EF BB BF, and the parsed values were identical to the source table, leading zeros included.
After this fix, the exported file opened in real Excel with correct Chinese — same result as our utf8-bom.csv test row. The alternative documented by Microsoft is Data > Get Data > From File > From Text/CSV and choosing the 65001 (UTF-8) origin at import time; that flow is from Microsoft's own pages but we did not machine-test the wizard UI in this round.
Fix 2: one giant column — the delimiter
With the semicolon file left on the cleaner's default comma delimiter, our table parsed as 4 rows × 2 columns — the header landed in one cell and one row split at the comma inside 北京, 上海. Choosing Semicolon explicitly, or switching the delimiter to Auto-detect, both produced the correct 4 rows × 4 columns with all values intact. The same choice exists in Excel's import flow (the wizard lets you set the delimiter), which is why the fix belongs at import time — double-click gives you no say.
Fix 3: 007 became 7 — leading zeros
The CSV file is not where zeros are lost. Our exported file still contains 007 byte for byte — verified after the round trip. The loss happens when Excel opens the file by double-click: it parses 007 as the number 7 in every encoding we tested. Microsoft's documented fix is to import instead of double-clicking and set that column's data format to Text in the import wizard; the file then keeps its zeros. We did not machine-run the wizard in this test, so treat that step as official-documentation-based; what we did verify is that the data survives in the file and that double-click always destroys it.
One more trap: cells that look like formulas
A cell beginning with = + - @ is executed by spreadsheet apps as a formula — a known attack vector in CSVs people exchange (for example =HYPERLINK(...) links). The CSV cleaner ships with safe export on by default: cells starting with those characters get an apostrophe prefix so Excel shows text instead of running anything (the tool tells you how many cells were prefixed; ours prefixed zero because the sample contains none by design — we keep the downloadable samples injection-safe on purpose). Turn the guard off only if you understand why it exists. This page does not demonstrate the dangerous payloads themselves.
Limits and what was not tested
- CSV cleaner limits: 5 MB of text, 100,000 rows, preview of the first 50 rows; encodings UTF-8 (± BOM) and GBK/GB18030 — it does not auto-detect every encoding.
- Excel tests ran on Windows 11, zh-CN locale (ANSI 936), desktop Excel via automation equivalent to double-click. Other locales use different ANSI code pages and list separators — the symptom pattern transfers, the exact garbage characters will differ.
- Not machine-tested here: Excel for macOS, Excel's import wizard UI, Numbers, Google Sheets, WPS. The Microsoft wizard steps above are documentation-based for that reason.
- The paste box in the CSV cleaner cannot repair text that was already mangled before pasting — rescue works from the original file's bytes.
- Full-width semicolons(;)inside Chinese text are ordinary characters and do not affect delimiter detection; ASCII semicolons in cells do affect the auto-detector's vote, which is why explicit delimiter selection is the reliable path.
Try it with our files
Everything below is the exact material from the runs: the same table in three encodings, the semicolon variant, the cleaner's actual export (byte-verified), and the expected-values file a checker can diff against. All samples are injection-safe by design (no cell starts with = + - @).
- utf8-nobom.csv — the mojibake-on-double-click file (246 bytes) — Download sample · 246 bytes
- utf8-bom.csv — same table with BOM; opens correctly (249 bytes) — Download sample · 249 bytes
- gbk.csv — same table in GBK/ANSI 936 (190 bytes) — Download sample · 190 bytes
- semicolons.csv — semicolon-delimited variant (247 bytes) — Download sample · 247 bytes
- cleaned-export.csv — the CSV cleaner's actual export from gbk.csv (247 bytes, UTF-8 BOM + CRLF) — Download sample · 247 bytes
- expected-values.json — the ground truth a checker can diff against — Download sample · 491 bytes
Capability claims about the CSV cleaner follow its tool page and engine source (checked 2026-11-11); the import steps follow Microsoft's official pages linked above.
Sources & verification
- YYSI CSV cleaner — engine reads files as UTF-8 first and retries GB18030 when replacement characters appear; export is always UTF-8 with BOM and CRLF; safe-export guard defaults on (engine source + live page) — Sources checked 2026-11-11
- Microsoft Support: Import or export text (.txt or .csv) files — the official open-directly vs import distinction and the import wizard steps (encoding origin and per-column data format) — Sources checked 2026-11-11
- Microsoft Support: Import data from a CSV, HTML, or text file — Data > Get Data > From File > From Text/CSV with encoding and column-format choices — Sources checked 2026-11-11
Sources checked Encoding/delimiter/leading-zero behavior was verified by YYSI on 2026-11-11 in two ways: (1) real desktop Excel on Windows 11 (zh-CN locale, ANSI code page 936/GBK) opened each sample via automation equivalent to double-click and the displayed cell text was recorded; (2) the YYSI csv-cleaner ran in a local browser against the same files through its real file-decode path, with the exported bytes checked byte for byte. The Microsoft import-wizard steps are quoted from the official pages above but the wizard UI itself was NOT run on a real machine in this test (automation limitation) — this is marked again where the steps appear. Excel for macOS, Numbers and Google Sheets were not tested.
Read our editorial standards or send corrections to [email protected].