Karakter kódolás Összeállította: Kovács Nándor Felhasznált irodalom: Neil Bradley: az XML kézikönyv
Alapfogalmak Karakterek Bármilyen jelek sorozata, ami valamilyen szövegben megjelenhet. Karaktekészlet Valamilyen karaktergyűjtemény, ami valamilyen szabvány, vagy megállapodás szerint rendelkezésünkre áll. Kódolás A számítógépek kizárólag csak számokat tudnak tárolni. A szövegeket úgy ábrázolják, hogy minden karakterhez tartozik egy kód, ami egy szám. Az, hogy ez a szám mekkora, az a kódolás szabványától függ. Például au ASCII kódrendszerben az "U"-nak 85 a kódja. Inkompatibilitás A karakter kódolásnak nincs egységes szabványa. Ezek gyakran nem kompatibilisek egymással. Ezért a különböző megjelenítő programokkal közölni kell, hogy az adott szöveg milyen szabvány szerint van kódolva, hogy helyesen tudják azt megjeleníteni.
ASCII, ISO 646 ASCII (Ejtsd: "eszki") 7 biten (az alsó hét bit, a legnagyobb helyiérték ellenőrző bit) ábrázolja a karaktereket. Vezérlő, és az angol ábécé karaktereit, számokat és írásjeleket tartalmaz. Kibővített ASCII 8 biten ábrázolja a karaktereket. Nem oldja meg a nemzeti karaketrek problémáját. ISO 646 Egy karakter kivételével ugyanaz mint az ASCII. A "$" helyett a "¤" karaktert (nemzetközi valutajel) tartalmazza.
ISO 8859, ANSI ISO 8859-x 8 biten ábrázolja a karektereket. A nemzeti karakterkészletekre ad egyfajta megoldást. Lényege, hogy nemzet-csoportonként más és más táblát használ. Az internetes dokumentumokban alkalmazzák. A magyar jelkészlet (és egyéb kelet-európai országok) az ISO 8859-2-ben található. ANSI 8 bites. A Windows rendszer által támogatott kódolást nevezik így. A Windows az ISO 8859-hez nagyon hasonló, de attól kicsit eltérő kódolást használ. Ez Nyugat-Európában a CP1252, Magyarországon a CP1250 (Közép-európai Windows).
Unicode, ISO 10646 Unicode (ejtsd: "junikód") 16 biten ábrázolja a karektereket. Elvileg 65 536, a gyakorlatban azonban kb. 50 000 karaktert ábrázol. Jelenleg a 3.0-ás verziónál tart, ami az ISO 10646-hoz igazodik. ISO 10646 Maximum 4 bájton ábrázolja a karektereket. Az emberi kultúrában előforduló összes jel ábrázolására alkalmas. Ez végső, egységes megoldást ad a kódolás problémájára. Valószínű, hogy a jövőben az összes operációs rendszer erre tér majd át. A Unicode 3.0 ehhez igazodik, nincs eltérés a két szabvány között.
UTF UTF-8 Rugalmasan 1 vagy 2 bájton ábrázolja a karektereket. A nem ékezetes betűket, számokat, írásjeleket (7 bites ASCII karaktereket) 1 bájton, míg a nemzeti karaktereket 2 bájton ábrázolja úgy, hogy azok bájtonként ne legyenek összetéveszthetők. Azért használják, mert így a szövegek átvitelénél kevesebb kódot kell továbbítani, mint az Unicode-al. Ez egyfajta tömörítési eljárás, de tudni kell, hogy csak az olyan nyelveknél (Az európai nyelvek nagyrésze) hatékony, ahol a betűk többségét az angol ABC teszi ki. UTF-16 Ezt a szabvány hasonló az UTF-8-hoz, de már az ISO 10646-os szabvány teljes készletét képes kezelni.
HTML kódok HTML kódok HTML oldalakon elhelyezett kódok különleges és nemzeti karakterek megjelenítéséhez. Elvileg 65535 féle karakter ábrázolására alkalmas. Itt a kódot a szövegben helyezzük el. így elérhetjük azt, hogy pusztán az ASCII jelkészlettel "akármilyen" nyelven tudunk írni. pl. "Álmos" helyett azt írjuk, hogy: "Álmos" vagy "Álmos".
ASCII Szövegfájl A szövegfájl szerkezete: soronként karakterkódok, kocsi vissza (0D), soremelés (0A)
Unicode szövegfájl 1. A fájl FFFE-vel kezdődik 2. Minden karakter két bájton tárolódik (Unicode) 3. minden sor végén: 0D00 0A00
UTF-8 szövegfájl ö 1. A fájl EF BB BF-el kezdődik. 2. Az angol ABC betűi, számok, írásjelek 1 bájtos ASCII kódok. Az ékezetes betűk, egyéb karakterek 2 bájtos UTF-8 kódok. 3. A 2 bájtos UTF-8 kódok egyik bájtja sincs benne az ASCII kódtáblában. 4. Az UTF-8 szövegfájl nem sokkal hosszabb, mint egy ASCII fájl, ha betűk zöme az angol ABC-ből való. ö
Kódolás deklaráció Különböző kódolású weblapok iso-8859-2 unicode Itt közöljük a megjelenítő programmal, hogy a fájlnak milyen a kódolása, hogy helyesen tudja megjeleníteni. (Ha a szöveg első két bájtja: FFFE akkor Unicode, vagy az első 3 bájtja: EFBBBF akkor UTF-8, amit a megjelenítő automatikusan képes felismerni.) HTML kód Különböző kódolású weblapok iso-8859-2 unicode utf-8 rosszul deklarált utf-8 fájl
Kódolás áttekintés Unicode 3.0, ISO 10646, UTF-16 Unicode, UTF-8 8859-x ASCII, ISO 646 7 bit (128) 8 bit (256) 2 bájt (UTF egy vagy több bájt) (65536) 4 bájt (UTF egy vagy több bájt) (2 milliárd)
Rövidítés magyarázat ASCII American Standard Code for Information Interchange: Amerikai Szabványos Információcsere-kód ISO International Organization for Standardization: Nemzetközi Szabványügyi Hivatal ANSI American National Standards Institute: Amerikai Nemzeti Szabványügyi Intézet