A betűszemét (krikszkraksz, katyvasz) olyan karakterkódolási hiba eredménye, amikor egy elektronikus szöveges tartalom kódolása eltér a megjelenítéskor használt kódolástól. Angolul mojibake, ami a japán 文字化け (modzsibake?) kifejezésből származik; 文字 (modzsi) 'betű', illetve 化け (bake) 'átváltozik'. Több nyelvbe is a japán kifejezés épült be, de egyes nyelveknek megvan a saját kifejezésük erre a hibára. Például németül Zeichensalat ('írásjel-saláta'), kínaiul luan mai ('kaotikus kód'; pinjin: luàn mǎ, egyszerűsített kínai: 乱码, hagyományos kínai: 亂碼), oroszul krakozjabri ('ákombákom betűk').

UTF-8 kódolású japán Wikipédia szócikk Windows-1252 kódolással megjelenítve

Az előfordulás jellegétől függően több oka is lehet a betűszemét megjelenésének.

Operációs rendszerek

szerkesztés

A operációs rendszerekben a probléma akkor jelentkezik, ha a rendszer területi beállítása nem egyezik a ténylegesen használt nyelvvel. A régebbi, nem Unicode-ot használó operációs rendszerek esetén a rossz nyelvi beállítás azt okozhatta, hogy az összes menü, gomb és egyéb, az operációs rendszer által kezelt nyelvfüggő felirat hibásan jelent meg. A mai operációs rendszerek többnyire Unicode kódolást használnak, így a probléma leginkább csak akkor lép fel, ha nem Unicode kódolású dokumentumot nyitunk meg, és a dokumentum nyelve eltér a területi beállításokban használt nyelvtől. Ez a probléma könnyen orvosolható a területi beállítások helyes beállításával.[1]

Szoftverek

szerkesztés

Előfordulhat, hogy egy szoftver csak adott nyelveket támogat, vagy nem használ Unicode-ot, még ha az operációs rendszer támogatná is. Ha egy szoftvert más nyelvi környezetben fejlesztettek, mint amin futtatjuk, és használ különleges karaktereket, a probléma felléphet. Szintén előfordulhat, hogy adatok archiválásakor más kódolást használtak, mint visszaállításkor. Ez a hiba pl. átnevezheti a fájlokat, mikor egy tömörített mappát nyitunk meg egy eltérő kódolású rendszerben. Külön területe a problémának a játékszoftverek, amelyek gyakran egyedi karakterkészleteket és megjelenítési módokat használnak.

Hálózati kommunikáció

szerkesztés

Manapság a probléma leginkább online tartalmak böngészésekor, különbözően vagy rosszul konfigurált szerverek kommunikációja esetén fordul elő. Kliens-szerver kapcsolat esetén előfordulhat, hogy a távoli fájlok nevei, azok tartalma, vagy maga a kliens-szerver közötti adatcsere tartalma sérül. Ide sorolhatjuk a levelezéskor vagy a web böngészésekor előforduló kódolási hibákat is. A probléma elkerüléséhez alapvető lenne a helyes beállítások használata,[2] adatcseréhez a kódtáblák[3] egyeztetése, az online tartalmak kódolásának megjelölése.[4]

Emberi tényező

szerkesztés

A tudatlanság mellett gyakori ok a nemtörődömség vagy elégtelen tesztelés. Sok kódolás csak kevéssel tér el egymástól, és bár néhány karakter hibás, a szöveg nem teljesen válik olvashatatlanná (lásd a példákat alább). Tipikus eset továbbá, hogy egy rendszert csak angol nyelvi környezetben teszteltek, és ekkor nem buknak ki a hibás beállítások, mert az angol ábécé betűit tekintve a legtöbb kódolás kompatibilis egymással.

A szöveg kódolása A megjelenítés által használt kódolás Eredmény Előfordulás
Helyes kódolás ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
árvíztűrő tükörfúrógép
CP 852 CP 850 ÁRVÍZTÙRè TÜKÖRFÚRÓGÉP
árvízt¹rï tükörfúrógép
Gyakori volt (és manapság is előfordul), hogy egy program nem támogatta a közép-európai CP 852 kiosztást, helyette a nyugat-európai CP 850 kódolással próbálta megjeleníteni a szöveget. Eltérés csak az ő-Ő és ű-Ű betűkben van.
CP 852 CP 437 ╡RV╓ZTδRè TÜKÖRFΘRαGÉP
árvízt√rï tükörfúrógép
Gyakori hiba volt a DOS operációs rendszer idején, amikor a szöveg a közép-európai CP 852 kódolást használta, míg az operációs rendszer, egy szoftver vagy nyomtató az alapértelmezett CP 437 kódolást. Megfigyelhető, hogy a kisbetűk többnyire helyesek, kivéve az ő (ï) és ű (√) betűket. Manapság már leginkább csak nyomtatott recepteken, csekkeken fordul elő.
CWI-2 CP 437 ÅRVìZTÿRº TÜKÖRFùRòGÉP
árvíztûrô tükörfúrógép
A CWI-2 kódolást kifejezetten úgy tervezték, hogy a magyar ékezetes szövegek jól olvashatók maradjanak akkor is, ha a megjelenítéskor vagy nyomtatáskor az alapértelmezett CP 437 kódolás van használva. A kilencvenes évek elejéig nagyon gyakori volt, később a Windows kódolások kiszorították.
Windows-1250 Windows-1252 ÁRVÍZTÛRÕ TÜKÖRFÚRÓGÉP
árvíztûrõ tükörfúrógép
A közép-európai Windows kódolás helyett az alapértelmezett nyugati van használva. Csak az ő-Ő (õ-Õ) és ű-Ű (û-Û) betűk rosszak, de a szöveg olvasható, mivel az ékezet nem feltűnően különbözik. Manapság ez az egyik leggyakoribb, magyar szövegeket érintő kódolási hiba, leginkább weblapokon, de gyakran nyomtatott formában is előfordul. Az alapértelmezett nyugati karakterkészlet nem támogatja a kettős éles ékezettel ellátott magyar betűket.
CP 852 Windows-1250 µRVÖZTëRŠ TšK™RFéRŕGP
rvˇztűr‹ tk”rfŁr˘g‚p
Közép-európai Windows kódolás használata DOS kódolás helyett.
Windows-1250 CP 852 ┴RV═ZT█RŇ T▄KÍRF┌RËG╔P
ßrvÝztűr§ tŘk÷rf˙rˇgÚp
Közép-európai DOS kódolás használata Windows kódolás helyett.
Quoted-printable 7 bites ASCII =C1RV=CDZT=DBR=D5 T=DCK=D6RF=DAR=D3G=C9P
=E1rv=EDzt=FBr=F5 t=FCk=F6rf=FAr=F3g=E9p
Leginkább rosszul konfigurált e-mail-szerverek esetén fordul elő, illetve mobiltelefonokon SMS üzenetekben is megjelenhet.
UTF-8 Windows-1252 ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
árvíztűrő tükörfúrógép
Leggyakrabban rosszul konfigurált webes szolgáltatások és webes e-mail-kliensek esetén fordul elő, ahol a rendszert nem tesztelték megfelelően nemzetközi használatra (mivel angol szövegekre a probléma gyakran rejtve marad). Ebben az esetben a tényleges (gyakran generált) tartalom UTF-8 kódolású, azonban ez a HTML fejlécekben nincs jelölve, ezért böngésző az alapértelmezett Windows-1252 kódolással próbálja a szöveget megjeleníteni.