Vad är mojibake?
Mojibake är oläsliga tecken som uppstår när en text sparas med en teckenkodning och läses med en annan. Oftast handlar det om UTF-8 som av misstag läses som Windows-1252 eller ISO-8859-1. Varje byte i ett specialtecken visas då som ett eget tecken. En översikt över mönstren hittar du under ä i stället för ä.
Vanliga orsaker
- Databasanslutningen använder
latin1, fast data är sparad i UTF-8. - Webbservern skickar
charset=ISO-8859-1, men sidan är sparad i UTF-8. - Ett mejl- eller nyhetsbrevsprogram anger fel teckenkodning.
- En gammal webbplats eller en flyttad WordPress-installation blandar Latin-1- och UTF-8-data.
- Text kopieras mellan program som förväntar sig olika teckenkodningar.
Trasigt två gånger: ä
Konverteras en redan trasig text fel en gång till uppstår dubbel mojibake: ä blir först ä och sedan ä. Mojibuster känner igen även de nivåerna och fixar upp till tre på en gång.
För utvecklare: åtgärda orsaken
- Lägg
<meta charset="utf-8">i HTML-koden och skicka headernContent-Type: text/html; charset=utf-8. - Använd
utf8mb4i MySQL och MariaDB för tabeller och anslutning (SET NAMES utf8mb4). - Spara källkodsfiler som UTF-8 utan BOM.
- Konvertera text bara en gång: vid gränsen mellan ditt eget system och omvärlden.
Vanliga frågor
Vad betyder tecknet �?
Det är ersättningstecknet U+FFFD. Ett program sätter in det när det inte kan läsa en byte. Det ursprungliga tecknet är då borta; Mojibuster visar hur många ställen det gäller. Ibland är själva filen fortfarande hel: frågetecken i stället för å, ä och ö.
Kan jag också konvertera HTML-koder som ä?
Ja. Kryssa i alternativet Konvertera även koder. Koder som ä, ä och ä blir då riktiga tecken.
Sparas min text någonstans?
Nej. Fixen sker i din webbläsare. Texten skickas inte och sparas inte.
Fungerar det med andra språk också?
Ja. Mojibuster fixar alla tecken som har lästs fel från UTF-8, till exempel norska och danska æ och ø, tyska omljud, franska accenter, emoji och japansk skrift.