Handleidingen

Rare tekens in je CSV-bestand? Zo los je het op

Door het Opener-team6 min lezen

Rare tekens zoals “é” of “Сума” betekenen dat de CSV in de ene tekstcodering is opgeslagen en geopend alsof het een andere is – de letters staan nog in het bestand, ze worden alleen verkeerd gedecodeerd. Open het bestand met de juiste codering (de CSV-viewer herkent die automatisch) en sla een UTF-8-kopie op. Vraagtekens (“????”) zijn een ander verhaal: die betekenen meestal dat de letters al verloren gingen toen het bestand werd geschreven.

Wat een codering is, in één minuut

Een CSV-bestand is platte tekst, en op schijf is tekst gewoon een reeks getallen (bytes). Een codering is de tabel die zegt welk getal welke letter is. Voor gewone Engelse letters en cijfers zijn bijna alle coderingen het eens, en daarom zien de bedragen in je bankexport er prima uit terwijl namen en omschrijvingen in onzin veranderen.

Deze drie kom je tegen in exports uit boekhoudsoftware en van banken:

Het bestand zelf vermeldt meestal niet welke codering het gebruikt. Het programma dat het opent, moet gokken, en gokt het verkeerd, dan krijg je mojibake – de technische naam voor deze verminkte tekst.

Lees de brij: wat elk patroon je vertelt

Het soort onzin verraadt wat er misging.

Je ziet Je verwachtte Wat er gebeurde
é, ü, € é, ü, € UTF-8-bestand geopend als Windows-1252
Сума (veel Ð en Ñ) Сума Cyrillische UTF-8 geopend als Windows-1252
Ñóìà (Latijnse letters met accenten) Сума Windows-1251-bestand geopend als Windows-1252
Cafй Café Windows-1252-bestand geopend als Windows-1251
� (zwarte ruit met ?) elke letter Bestand in oude codering geopend als UTF-8
???? elke letter Letters verloren gegaan bij het opslaan

Paren als “Ô + iets of “Д/“Ñ” + iets zijn de vingerafdruk van UTF-8 dat als oude codering wordt gelezen: elke niet-Engelse letter is in UTF-8 twee bytes, en de oude tabel toont elke byte als een apart symbool. Dat is goed nieuws – er is niets verloren, en het bestand als UTF-8 openen lost het op.

Gewone vraagtekens zijn slecht nieuws. Ze verschijnen meestal als een programma tekst probeerde op te slaan in een codering die geen plek heeft voor die letters (bijvoorbeeld Cyrillisch in Windows-1252) en ze allemaal verving door ?. De oorspronkelijke letters staan dan niet meer in het bestand, en geen enkele viewer haalt ze terug. De oplossing is opnieuw exporteren uit het bronsysteem en daarbij UTF-8 of de juiste regionale codering kiezen, als het exportvenster die keuze biedt.

De BOM: waarom Excel UTF-8 verkeerd leest

Een UTF-8-bestand kan beginnen met drie onzichtbare bytes, de byte order mark (BOM). Dat is een hint die zegt: “dit bestand is UTF-8”.

Als je op een CSV dubbelklikt, leunt Excel zwaar op die hint. Met een BOM leest het UTF-8 meestal goed; zonder BOM gaat het vaak uit van de oude codering van je computer – en precies zo verandert een prima UTF-8-export van een bank in “Сума”. Andere programma’s doen het omgekeerde en tonen de BOM als rommel zoals  aan het begin van de eerste kolomkop. Zie je dat, dan is het bestand UTF-8 en wordt de BOM als tekst weergegeven.

Oplossing 1: open het bestand met automatische herkenning

De snelste oplossing is iets de codering voor je laten herkennen. De CSV-viewer van Opener probeert eerst UTF-8 en valt, afhankelijk van de tekst, terug op Windows-1251 of Windows-1252, zodat namen en omschrijvingen goed verschijnen zonder importwizard. Hij herkent ook het scheidingsteken – komma, puntkomma, tab of pipe.

Het bestand wordt in je browser gelezen en nergens geüpload, en dat is belangrijk bij salarisadministratie, facturen en bankafschriften. Om het bestand voor andere programma’s te repareren, gebruik je de exportknop: je krijgt een schone UTF-8-kopie van de tabel (van de huidige weergave, dus wis eerst je zoekopdracht als je alle rijen wilt). Is je probleem niet dat letters verminkt zijn, maar dat alles in één kolom belandt? Lees dan waarom een CSV in één kolom opent.

Oplossing 2: importeer het in Excel met de juiste bestandsoorsprong

Dubbelklik niet op het bestand. Open in plaats daarvan een lege werkmap en gebruik op het tabblad Gegevens de import Van tekst/CSV. Het voorbeeldvenster heeft een lijst Bestandsoorsprong (in de Engelse versie “File origin”) waarin je de codering kiest:

Wissel ertussen en kijk naar het voorbeeld – zodra de namen kloppen, heb je de juiste. Laad dan de gegevens. Moet je het bestand doorsturen, sla het dan in Excel op als bestandstype “CSV UTF-8” en niet als gewone “CSV”, want die kan weer de oude codering gebruiken.

Oplossing 3: Google Sheets, LibreOffice of een teksteditor

Google Sheets. Een CSV importeren in Google Sheets (Bestand → Importeren) werkt goed met UTF-8-bestanden, en in het importvenster kies je het scheidingsteken. Voor bestanden in een oude codering is het een minder betrouwbare route: toont een export in Windows-1251 of Windows-1252 nog steeds verminkte letters, zet het bestand dan met een van de andere methoden om naar UTF-8 en importeer die kopie.

LibreOffice Calc. Als je een CSV opent, toont LibreOffice een venster voor tekstimport met een lijst Tekenset. Kies Unicode (UTF-8), Cyrillisch (Windows-1251) of West-Europees (Windows-1252) en het voorbeeld werkt meteen bij. Het is gratis en werkt op Windows, macOS en Linux.

Een teksteditor. Met editors zoals Kladblok op Windows, Teksteditor op macOS of een code-editor als VS Code kies je de codering bij het opslaan. Het addertje: de editor moet het bestand eerst met de juiste codering openen. Ziet de tekst er in de editor goed uit, sla hem dan op als UTF-8. Is hij daar al verminkt, dan bewaar je met opslaan alleen de rommel – open het bestand eerst opnieuw met de juiste codering.

Veelgestelde vragen

Kan ik “????” in mijn CSV herstellen?

Meestal niet. Vraagtekens betekenen dat de tekens zijn vervangen toen het bestand werd geschreven, dus de oorspronkelijke letters staan niet in het bestand. Exporteer het opnieuw uit de boekhoudsoftware of bij de bank, en kies UTF-8 als dat kan.

Welke codering gebruik ik bij opslaan of exporteren?

UTF-8. Het kan elk alfabet opslaan en elk modern programma begrijpt het. Openen collega’s het bestand door in Excel te dubbelklikken, gebruik dan de optie “CSV UTF-8” van Excel, zodat het bestand met een BOM begint.

Veranderen mijn getallen als ik de codering wijzig?

Nee. Cijfers, punten en komma’s zijn hetzelfde in UTF-8, Windows-1251 en Windows-1252, dus bedragen en datums blijven ongewijzigd. Alleen letters buiten het basale Engels veranderen.

Is het veilig om een bankexport online te repareren?

Alleen als de tool het bestand niet uploadt. De CSV-viewer decodeert en exporteert het bestand volledig in je browser, dus het afschrift verlaat je apparaat nooit.