Varifrån ordet kommer
Mojibake (文字化け) är japanska: ”moji” betyder ”tecken” och ”bake” ”förvandling”. På 1990-talet använde japanska datorer flera teckenkodningar parallellt – Shift_JIS, EUC-JP och ISO-2022-JP – och oläsliga mejl och webbsidor var vardag. Ordet fastnade och kom in i engelskan. På svenska säger vi oftast bara ”konstiga tecken” eller att ”å, ä och ö blir fel”.
Hur mojibake uppstår
En dator sparar text som byte. Teckenkodningen avgör vilka byte som hör till vilket tecken. I UTF-8 sparas ä som de två byten C3 A4. Ett program som läser de byten som Windows-1252 visar ett tecken per byte: Ã för C3 och ¤ för A4.
I det steget går ingenting förlorat: byten finns kvar, de läses bara fel. Därför går mojibake nästan alltid att vända tillbaka: Mojibuster räknar om de felaktiga tecknen till byte och läser dem rätt igen.
Mojibake
Smörgås, blåbär, Malmö, Åsa och Björn – 5 €
Fixad
Smörgås, blåbär, Malmö, Åsa och Björn – 5 €
Mojibake på andra språk
- Japanska:
縺薙s縺ォ縺。縺ッi stället förこんにちは– UTF-8 läst som Shift_JIS. Mer på den japanska sidan. - Kinesiska:
浣犲ソi stället för你好– UTF-8 läst som GBK. På kinesiska heter det 乱码 (luànmǎ, ”kaotisk kod”). - Ryska:
Приветi stället förПривет– UTF-8 läst som Windows-1251. Ryssarna kallar det ”krakozjabry”. - Svenska, tyska, franska …:
ä,öeller€i stället förä,öeller€– den vanligaste formen i världen. Alla mönster: ä i stället för ä.
Typiska orsaker
- Excel öppnar en CSV i UTF-8 utan BOM som ANSI vid dubbelklick: Excel visar konstiga tecken.
- En CSV-export från en webbutik, ett CRM eller banken öppnas med fel teckenkodning: fixa CSV.
- En webbplats eller ett mejl anger fel
charset, eller databasanslutningen använderlatin1: fixa UTF-8-tecken. - Undertexter är sparade i en gammal teckenkodning: undertexter med konstiga tecken.
- Text som redan är trasig konverteras igen – dubbel mojibake som
ä.
Går det alltid att fixa?
Nästan alltid, så länge byten är intakta. Det går inte längre om ett program redan har ersatt tecknen med ? eller med ersättningstecknet �: då är den ursprungliga informationen borta. Mojibuster fixar allt som går att fixa, upp till tre kodningsnivåer på en gång, och talar om hur många tecken som är förlorade. När ? och � fortfarande går att rädda: frågetecken i stället för å, ä och ö.
Så undviker du det
- Spara filer som UTF-8 – CSV-filer för Excel som CSV UTF-8 (kommaavgränsad), som lägger till en BOM.
- Ange teckenkodningen:
<meta charset="utf-8">i HTML,utf8mb4i MySQL och MariaDB. - Konvertera text bara en gång, vid gränsen mellan två system.
- Välj teckenkodning själv när du importerar, i stället för att låta programmet gissa.
Vanliga frågor
Hur uttalar man mojibake?
Ungefär som ”mo-dji-ba-ke”, med alla fyra stavelserna uttalade.
Är min fil skadad eller smittad?
Nej. Mojibake är ett visningsproblem, inget virus, och oftast går inga data förlorade. Filen läses bara med fel teckenkodning.
Vad är skillnaden mellan mojibake och �?
Konstiga tecken som ä innehåller fortfarande de ursprungliga byten och går att fixa. Tecknet � betyder att ett program inte kunde läsa en byte och ersatte den: det tecknet är förlorat.
Skickas min text till en server?
Nej. Mojibuster fixar texten i din webbläsare. Ingenting skickas eller sparas.