Hvad er mojibake?
Mojibake er ulæselige tegn, der opstår, når en tekst gemmes med én tegnkodning og læses med en anden. Oftest drejer det sig om UTF-8, der ved en fejl læses som Windows-1252 eller ISO-8859-1. Hver byte i et specialtegn vises så som sit eget tegn. Et overblik over mønstrene finder du under ø i stedet for ø.
Typiske årsager
- Databaseforbindelsen bruger
latin1, selvom dataene er gemt i UTF-8. - Webserveren sender
charset=ISO-8859-1, men siden er gemt i UTF-8. - Et e-mail- eller nyhedsbrevsprogram angiver den forkerte tegnkodning.
- En gammel hjemmeside eller en flyttet WordPress-installation blander Latin-1- og UTF-8-data.
- Tekst kopieres mellem programmer, der forventer forskellige tegnkodninger.
Ødelagt to gange: ø
Konverteres en allerede ødelagt tekst forkert endnu en gang, opstår dobbelt mojibake: ø bliver først til ø og derefter til ø. Mojibuster genkender også de niveauer og retter op til tre på én gang.
For udviklere: fjern årsagen
- Sæt
<meta charset="utf-8">i HTML-koden, og send headerenContent-Type: text/html; charset=utf-8. - Brug
utf8mb4i MySQL og MariaDB til tabeller og forbindelse (SET NAMES utf8mb4). - Gem kildekodefiler som UTF-8 uden BOM.
- Konvertér kun tekst én gang: ved grænsen mellem dit eget system og omverdenen.
Ofte stillede spørgsmål
Hvad betyder tegnet �?
Det er erstatningstegnet U+FFFD. Et program indsætter det, når det ikke kan læse en byte. Det oprindelige tegn er så væk; Mojibuster viser, hvor mange steder det gælder. Nogle gange er selve filen stadig hel: spørgsmålstegn i stedet for æ, ø og å.
Kan jeg også konvertere HTML-koder som ø?
Ja. Slå indstillingen Konvertér også koder til. Koder som ø, ø og ø bliver så til rigtige tegn.
Bliver min tekst gemt nogen steder?
Nej. Rettelsen sker i din browser. Teksten bliver hverken sendt eller gemt.
Virker det også med andre sprog?
Ja. Mojibuster retter alle tegn, der er læst forkert fra UTF-8, for eksempel svenske og tyske ä og ö, franske accenter, emoji og japansk skrift.