These come from building a browser tool
that converts CSVs with 200k rows —
and learning every way data can fight back.
Excel semicolon exports.
Your comma parser dies on the first row.
Fix: detect the separator from the header line, not the extension.UTF-8 BOM.
One invisible character at the start of the file
and your first column is named "\uFEFFname".
Fix: strip BOM before parsing. Always.Huge files freeze the tab.
Loading 500k rows into memory at once
kills the browser — and the user's patience.
Fix: stream in chunks and process row by row.Numbers that are actually strings.
"1,234.56" with a comma breaks every calculation.
Fix: parse numbers with locale in mind, never blindly.Mixed encodings in one file.
Half the file is UTF-8, half is Latin-1.
Fix: detect encoding from the first bytes, then convert.Empty rows and stray newlines.
A trailing blank line crashes naive parsers.
Fix: skip empty lines and trim before splitting."But it works on my machine."
The file your parser handled perfectly
fails on the user's real-world file.
Fix: test against messy, real data — not clean examples.
One rule ties them all:
assume the data is broken. Then it never surprises you.
Save this for the next time a CSV ruins your day.
Which one of these hit you hardest?
Top comments (0)