Hva er mojibake?
Mojibake er uleselige tegn som oppstår når en tekst lagres med ett tegnsett og leses med et annet. Som oftest gjelder det UTF-8 som ved en feil leses som Windows-1252 eller ISO-8859-1. Hver byte i et spesialtegn vises da som et eget tegn. En oversikt over mønstrene finner du under ø i stedet for ø.
Typiske årsaker
- Databasetilkoblingen bruker
latin1, selv om dataene er lagret i UTF-8. - Webserveren sender
charset=ISO-8859-1, men siden er lagret i UTF-8. - Et e-post- eller nyhetsbrevprogram oppgir feil tegnsett.
- En gammel nettside eller en flyttet WordPress-installasjon blander Latin-1- og UTF-8-data.
- Tekst kopieres mellom programmer som forventer ulike tegnsett.
Ødelagt to ganger: ø
Konverteres en allerede ødelagt tekst feil én gang til, oppstår dobbel mojibake: ø blir først til ø og deretter til ø. Mojibuster kjenner også igjen disse nivåene og fikser opptil tre på én gang.
For utviklere: fjern årsaken
- Sett
<meta charset="utf-8">i HTML-koden, og send headerenContent-Type: text/html; charset=utf-8. - Bruk
utf8mb4i MySQL og MariaDB for tabeller og tilkobling (SET NAMES utf8mb4). - Lagre kildekodefiler som UTF-8 uten BOM.
- Konverter tekst bare én gang: ved grensen mellom ditt eget system og omverdenen.
Ofte stilte spørsmål
Hva betyr tegnet �?
Det er erstatningstegnet U+FFFD. Et program setter det inn når det ikke kan lese en byte. Det opprinnelige tegnet er da borte; Mojibuster viser hvor mange steder det gjelder. Noen ganger er selve filen fortsatt hel: spørsmålstegn i stedet for æ, ø og å.
Kan jeg også konvertere HTML-koder som ø?
Ja. Slå på innstillingen Konverter også koder. Koder som ø, ø og ø blir da til ekte tegn.
Blir teksten min lagret noe sted?
Nei. Fiksingen skjer i nettleseren din. Teksten blir verken sendt eller lagret.
Fungerer det også med andre språk?
Ja. Mojibuster fikser alle tegn som er lest feil fra UTF-8, for eksempel svenske og tyske ä og ö, franske aksenter, emoji og japansk skrift.