Mojibake
Mojibake (文字化け uitspraak /ˌmodʑibake/) is jargon voor digitale teksten die verkeerd weergegeven worden. Problemen komen onder andere voor in webpagina's, e-mails en sms'jes.
De oorzaak van fouten is verkeerde interpretatie van informatie die in de vorm van bytes verstuurd wordt. Een byte kan 256 verschillende waarden hebben, genoeg voor de cijfers en letters van het Latijnse schrift, maar niet voor de vele speciale tekens zoals diakriteten, en al helemaal niet om alle schriften van de wereld weer te geven.
Een webpagina kan aangeven een bepaalde tekencodering te gebruiken, waarin bijvoorbeeld bepaalde bytes een cyrillisch teken voorstellen, maar als de tekencodering niet (correct) is opgegeven of door de browser wordt genegeerd, dan kan dat een onleesbare brij produceren. De problemen zijn nog groter als een simpel westers systeem te maken krijgt met schriften waar elk woord een eigen teken heeft, zoals Chinees en Japans schrift; die hebben zoveel gangbare tekens dat er twee bytes per teken nodig zijn.
Verouderde of te simpele systemen en verkeerde codering geven mojibake: teksten met fouten of een volkomen onleesbare brij. Een tekst die een accentteken zoals ë weergeeft als à zal meestal nog leesbaar zijn, maar een foute instelling voor een schriftsysteem geeft een onbruikbaar resultaat, zie de tabel onder het kopje Voorbeeld.
Codering
Een simpele oplossing om verkeerde weergaven te voorkomen, zou zijn om meer bytes per teken te reserveren; zo kan een reeks van vier bytes meer dan vier miljard waarden aannemen en dus vier miljard verschillende tekens weergeven. Het versturen kost echter vier keer zoveel tijd en energie, wat gewoonlijk niet acceptabel is. Daarom wordt een codering gemaakt: een reeks afspraken die bijvoorbeeld aangeeft dat een bytewaarde 65 overeenkomt met de hoofdletter A en 66 met hoofdletter B.
Coderingen maken gebruik van het feit dat de meeste teksten maar een klein deel van de beschikbare tekens gebruiken. Die krijgen een codering die binnen één byte past, de zeldzamere tekens, zoals de diakrieten krijgen een code van twee bytes. Er bestaan echter veel verschillende coderingen, waarvan er enkele genoemd worden in onderstaand voorbeeld.
Een teken dat niet als weer te geven teken wordt herkend, wordt op websites veelal aangeduid met �. Soms wordt de letter niet weergegeven en is de letter die erna komt ook niet zichtbaar (sces in plaats van scènes).
Etymologie
Mojibake is een Japans woord dat uit twee delen bestaat: moji=teken; karakter en bake=verandering.
Voorbeeld
| Codering | Browserinstelling | Resultaat |
|---|---|---|
| Arabisch voorbeeld: | منتدى عرب شير مشاهدة الملف الشخصي | |
| Betekenis, min of meer: | Arabisch Share-forum Bekijk profiel | |
| UTF-8 | ISO 8859-1 | منتدى عرب شير - مشاهدة المل٠الشخصي |
| KOI8-R | ы┘ы├ь╙ь╞ы┴ ь╧ь╠ь╗ ь╢ы┼ь╠ - ы┘ь╢ь╖ы┤ь╞ь╘ ь╖ы└ы┘ы└ы│ ь╖ы└ь╢ь╝ь╣ы┼ | |
| ISO 8859-5 | й йиЊиЏй иЙиБиЈ иДйиБ - й иДиЇйиЏиЉ иЇйй йй иЇйиДиЎиЕй | |
| CP 866 | Е┘Ж╪к╪п┘Й ╪╣╪▒╪и ╪┤┘К╪▒ - ┘Е╪┤╪з┘З╪п╪й ╪з┘Д┘Е┘Д┘Б ╪з┘Д╪┤╪о╪╡┘К | |
| Windows-1256 | ISO 8859-6 | ظ…ظ†طھط¯ظ‰ ط¹ط±ط¨ ط´ظٹط± - ظ…ط´ط§ظ‡ط¯ط© ط§ظ„ظ…ظ„ظپ ط§ظ„ط´ط®طµظٹ |
| CP 852 | ┘ů┘ćě¬ě»┘ë ě╣ě▒ěĘ ě┤┘Őě▒ - ┘ůě┤ěž┘çě»ěę ěž┘ä┘ů┘ä┘ü ěž┘äě┤ě«ěÁ┘Ő | |
| ISO 8859-2 | Ů Ůتد٠ؚعب Ř´ŮŘą - ٠شاŮŘŻŘŠ اŮŮ Ů٠اŮش؎ؾ٠| |
| ASMO 708 | عàع╢ظ╔ظ»عë ظ╥ظ▒ظ╟ ظ═عèظ▒ - عàظ═ظ╞عçظ»ظ╚ ظ╞ع╡عàع╡ع┤ ظ╞ع╡ظ═ظ«ظ╬عè | |