Blixwerk

CSV Import Failed: Encoding Error, Deadline in an Hour

2026-10-29

It is 8:58 on a Thursday and the polytunnel office smells of damp compost and instant coffee.

Jonas runs a small plant nursery with an online shop on the side. At ten o'clock, a spring sale goes live. The newsletter went out yesterday. The banner is up. The only thing missing is the new price list from his supplier, 340 rows of it, which has to go into the shop before the sale can start.

He clicks Import. The little progress bar creeps along, then stops.

Import failed. Encoding error on line 41.

That is all it says. No hint, no apology.

The line that won't behave

You know this feeling, even if your file is different. It might be a client export, a supplier list or a bank download. Something that was supposed to take two minutes now has a red message on it, and the clock in the corner of the screen has stopped being background noise.

Jonas opens the file. Line 41 is a Pelargonie, and the name has turned into a little string of question marks and odd symbols. He scrolls. Line 58 has the same trouble. So does 112. Every German umlaut in the supplier's list has been replaced by something that looks like a cat walked over the keyboard.

He tries what anyone would try. He saves the file again. Same error. He saves it under a new name. Same error. He opens it in a different program and the symbols are different, but they are still wrong.

It is 9:14.

What it costs when the clock is loud

The sale is not a disaster if it starts late. Jonas knows that, in the part of his head that stays reasonable. But the reasonable part is quiet right now.

The loud part is doing arithmetic. Forty minutes left. The newsletter promised ten o'clock. Somebody in a kitchen two towns away is already refreshing the page with a cup of tea. If it isn't there, they will not be angry. They will just close the tab, and he will never know.

There is also a smaller, sourer thought underneath: a real business would have this sorted.

It is not true, but it is what the tired part of the brain says when a file will not open properly.

He rings his supplier. It goes to voicemail. He types 'csv encoding error' into a search box and gets a wall of advice that begins with words like UTF-8, BOM and code page. He reads three lines of the first answer and feels his shoulders climb toward his ears.

He did not start a nursery to become an expert in how computers store the letter ü.

The moment he stops fighting the file

At 9:31 he stops. He puts the mug down, looks through the plastic window at the rows of seedlings, and asks himself a plainer question.

What if this is not a me problem?

Because it isn't. The supplier's export is not wrong on purpose. The shop's import is not broken. Two systems simply disagree about how to write the same letters, and nobody told Jonas that this was a thing that happens to ordinary people on ordinary Thursdays. It happens to many people who work with exported files. It is not a sign that he is bad at his job.

That thought loosens something. Not the problem, not yet. But the shame around it.

He remembers a friend, a developer who helps out with the shop now and then, once saying that this sort of file chore should be a small, boring, repeatable step. Something you run, look over, and move on from. Not a rescue mission every time.

Jonas does not have that step today. He has a tangle of workarounds and about twenty-eight minutes. So he does the slow thing: copies the text into a fresh sheet, fixes the worst lines by hand, and re-types the umlauts he can find. He gets the import through at 9:56. It is not elegant, and he is not sure he caught every line. But the page is live when the first newsletter readers arrive.

He breathes out. Then he spends the rest of the morning quietly wondering whether Gänseblümchen is spelled right in row 203.

The same Thursday, a different way

Imagine the other version.

The supplier file lands in the inbox on Wednesday. Jonas drops it into a folder and runs one small step. It shows him what it would change, without touching anything yet: these lines had broken characters, these dates were in two formats, these three rows were duplicates. He reads the short report with his coffee. It takes about as long as the coffee.

He nods, approves it, and the clean file comes out the other side. The import goes through on the first try.

At ten o'clock on Thursday he is not in the office at all. He is walking the long row of tunnels with a watering can, watching the sale go live on his phone like any customer would. Nothing is on fire. The morning belongs to the plants again.

That is the whole difference. The file problem is still there, because files will always be a little messy. But it has stopped being an emergency and become a chore with a known shape.

If you recognise the 9:14

Maybe your version is a client's export, a payment list or a shop download, and the red message appears just before something has to go out. If so, you are in good company, and it really is a fixable kind of problem.

If you are comfortable with a little Python and want this to be a quiet routine instead of a scramble, the Clean Data in Minutes – CSV & Excel Cleaning Toolkit (Python) is built for exactly that. It helps you dedupe, fix dates, phones and encoding, split, merge and validate messy exports, with a dry-run and a change report so you can see what will happen before it does. It comes with a 30-day money-back promise: if it doesn't help, you get a full refund, no questions.

No rush. Maybe just keep it in mind for the next time a file says line 41.

An illustrative story, written with AI assistance.

Sounds familiar? Clean Data in Minutes – CSV & Excel Cleaning Toolkit (Python) – Clean messy CSV/Excel exports in minutes: dedupe, fix dates, phones, encoding, split, merge, validate. Dry-run + change report.

Take a look