Honnan ered a mojibake szó?
A mojibake (文字化け) japán szó: a „moji” jelentése „írásjel”, a „bake” jelentése „átváltozás”. A 90-es években a japán számítógépek egyszerre több kódolást használtak – Shift_JIS, EUC-JP és ISO-2022-JP –, így az olvashatatlan e-mailek és weboldalak mindennaposak voltak. A szó átkerült az angolba, és nemzetközi fogalom lett. Magyarul többnyire egyszerűen „hibás ékezetekről” vagy „furcsa karakterekről” beszélünk.
Hogyan keletkezik?
A számítógép a szöveget bájtokként tárolja. A kódolás határozza meg, melyik bájt melyik betűt jelenti. UTF-8-ban az ő két bájtot foglal: C5 91. Egy program, amely ezeket Windows-1250-ként olvassa, minden bájthoz külön jelet mutat: Ĺ-t a C5-höz és ‘-t a 91-hez.
Közben semmi nem vész el – a bájtok megvannak, csak rosszul olvasták be őket. Ezért a hiba általában visszafordítható: a Mojibuster a hibás jeleket visszaalakítja bájtokká, és a helyes kódolással olvassa be őket.
Mojibake
SzĹ‘ke Sándor tĂĽkörfĂşrĂłgĂ©pet vett GyĹ‘rben – szállĂtás szerdán
Javítás után
Szőke Sándor tükörfúrógépet vett Győrben – szállítás szerdán
A magyar mojibake fajtái
Ĺ‘,ű,Ă©aző,ű,éhelyett – UTF-8 Windows-1250-ként beolvasva. Jellemző az Excelben megnyitott CSV-fájloknál: hibás ékezetek az Excelben.õésûazőésűhelyett – régi Windows-1250 vagy ISO-8859-2 fájl nyugat-európai beállítással megnyitva: Windows-1250 átalakítása UTF-8-ra.- A filmfeliratoknál mindkét változat előfordul: hibás ékezetek a feliratban.
Mojibake más nyelveken
- Japán:
縺薙s縺ォ縺。縺ッaこんにちはhelyett – UTF-8 Shift_JIS-ként beolvasva. Bővebben a japán oldalon. - Orosz:
ПриветaПриветhelyett – UTF-8 Windows-1251-ként beolvasva. Az oroszok „krakozjabrinak” hívják. - Nyugati nyelvek:
é,ñvagy€azé,ñvagy€helyett – a világon a leggyakoribb forma.
Tipikus okok
- Az Excel a BOM nélküli UTF-8 CSV-fájlt Windows-1250 kódolással nyitja meg.
- Az adatbázis-kapcsolat
latin1vagylatin2kódolást használ, pedig az adatok UTF-8-ban vannak. - Egy weboldal vagy e-mail rossz
charset-et ad meg. - Könyvelő- vagy hivatali rendszerek régi fájljai Windows-1250 vagy ISO-8859-2 kódolásban vannak.
- A már hibás szöveget még egyszer átalakítják – így kétszeresen hibás szöveg keletkezik.
Mindig javítható?
Szinte mindig, amíg a bájtok sértetlenek. Nem javítható, ha egy program a betűket ? jellel vagy a � helyettesítő karakterrel cserélte le – ilyenkor az eredeti információ elveszett. A Mojibuster mindent kijavít, ami javítható, és megmutatja, hány hely veszett el.
Hogyan előzhető meg?
- Ments UTF-8-ban, az Excelnek szánt CSV-fájlokat CSV UTF-8 (vesszővel tagolt) formátumban.
- Add meg a kódolást:
<meta charset="utf-8">HTML-ben,utf8mb4MySQL-ben és MariaDB-ben. - A szöveget csak egyszer alakítsd át, két rendszer határán.
- Importáláskor magad válaszd ki a kódolást, ne bízd a program találgatására.
Gyakori kérdések
Hogyan kell kiejteni a mojibake szót?
Nagyjából „mo-dzsi-ba-ke”, mind a négy szótagot tisztán kiejtve. Japán szó, ezért nincs benne erős hangsúly.
Sérült vagy vírusos a fájlom?
Nem. A mojibake megjelenítési probléma, nem vírus, és általában nem jelent adatvesztést. A fájlt csak rossz kódolással olvasták be.
Mi a különbség a mojibake és a � jel között?
Az olyan mojibake, mint a Ĺ‘, még tartalmazza az eredeti bájtokat, és javítható. A � jel azt jelenti, hogy egy program nem tudott beolvasni egy bájtot, és lecserélte – ez a betű elveszett.
Feltöltődik a szövegem egy szerverre?
Nem. A Mojibuster közvetlenül a böngésződben javítja a szöveget. Sehová nem küldjük el, és sehol nem tároljuk.