Geval 1: � in een bestand dat eigenlijk goed is
Toont een editor, speler of browser Caf� of Belgi�, dan is het bestand meestal opgeslagen in Windows-1252 (ANSI) en wordt het als UTF-8 gelezen. De byte van de letter met accent is in UTF-8 ongeldig, dus het programma zet bij het tonen het vervangingsteken � neer. In het bestand zelf staat nog de juiste byte.
Oplossing: sleep het oorspronkelijke bestand in het vak hierboven. Mojibuster herkent de codering bij het inlezen en zet het bestand om naar UTF-8. Belangrijk: gebruik het bestand zelf en kopieer de tekst niet uit het programma – bij het kopiëren wordt de � definitief.
Geval 2: � of ? staat echt in de tekst
Heeft een programma de tekst met het vervangingsteken opgeslagen of doorgestuurd, dan is de oorspronkelijke letter verloren. Hetzelfde geldt voor ?: programma’s zetten dat neer als een teken in de doelcodering niet bestaat – bijvoorbeeld bij opslaan als ASCII, zodat financiën als financi?n eindigt.
Daaruit valt niets meer terug te rekenen, want elke letter met accent is hetzelfde teken geworden. Mojibuster vertelt je hoeveel plekken het betreft, in plaats van te gokken. Alleen de bron helpt dan nog: exporteer opnieuw of gebruik een back-up.
Typische oorzaken van vraagtekens
- Database: de kolom of verbinding gebruikt
latin1ofascii, terwijl de gegevens als UTF-8 binnenkomen. MySQL vervangt onbekende tekens dan door?. Stel alles in oputf8mb4. - PowerShell 5.1:
Export-Csvschrijft standaard ASCII en maakt van letters met accent een?. Geef-Encoding UTF8mee. - Python:
encode('ascii', errors='replace')vervangt tekens zonder waarschuwing door?. - Opdrachtprompt: de Windows-console toont tekens die zijn codetabel niet kent als
?. Meestal is alleen de weergave fout, niet het bestand.
Zo zie je welk geval je hebt
- Open het bestand in een editor die de codering toont, zoals Notepad++ of Kladblok. Staat er onderin “ANSI” of “Windows-1252”, dan is het geval 1.
- Sleep het bestand in Mojibuster. Staat er in het resultaat “Gelezen als Windows-1252 (ANSI)” en zijn de letters terug, dan was het geval 1.
- Meldt Mojibuster verloren tekens, dan is het geval 2. Dan helpt alleen een nieuwe export.
Zie je reeksen als ë in plaats van vraagtekens, dan is het een andere fout – en die is bijna altijd te herstellen: ë in plaats van ë. Kapotte apostrofs zoals ’ vind je bij apostrofs en aanhalingstekens.
Veelgestelde vragen
Kan Mojibuster van ? weer letters maken?
Nee. Een ? kan voor elke letter staan, de informatie is weg. Mojibuster laat zulke plekken staan, maar vertelt je hoeveel het er zijn.
Waarom zie ik � in het ene programma wel en in het andere niet?
Dan is het bestand in orde en leest maar één van de programma’s het met de verkeerde codering. Zet het met Mojibuster om naar UTF-8, dan tonen beide het goed. Bij CSV-bestanden in Excel lees je hier hoe dat zit.
Wat is het teken �?
Het vervangingsteken U+FFFD. Programma’s zetten het neer als ze een byte niet als teken kunnen lezen. Het wijst op een coderingsfout en hoort niet bij de eigenlijke tekst.