Betűszemét

A Wikipédiából, a szabad enciklopédiából
(Modzsibake szócikkből átirányítva)
UTF-8 kódolású japán Wikipédia szócikk Windows-1252 kódolással megjelenítve

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) 'megvá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').

Okai[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 az internet 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 | forrásszöveg szerkesztése]

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.

Példák[szerkesztés | forrásszöveg szerkesztése]

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 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ó. 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.
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 email 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 email 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.

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]