Az n billentyű átugrik az oldal navigációhoz. Ugrás a szöveg elejére.

Ez a dokumentum egy fordítás. Bármilyen ellentmondás vagy hiba esetén a legfrissebb angol nyelvű eredeti változatot kell mérvadónak tekinteni. A szerzői jog a W3C tulajdonát képezi, amint az alább látható.

Fordító: Dénes Kohn, Metaphraser - Translation Company

s_gotoW3cHome Internacionalizációs Tevékenység
 

Karakterkódolások kezdőknek

Célközönség: tartalom szerkesztők, felhasználók és bárki aki bizonytalan, hogy mi az a karakterkódolás és egy rövid összegzést szeretne, hogy ez hogyan érinti őket

Megjegyzés: Változások történtek az eredeti angol változatban amióta a dokumentum le lett fordítva. Változások megtekintése.

Kérdés

Mi az a karakterkódolás és miért kell foglalkoznom vele?

Válasz

Először is, miért kell foglalkoznom vele?

Ha bármi mást használunk mint az angolban megtalálható alap karaktereket, az emberek nem tudják elolvasni a szövegünket hacsak nem mondjuk meg, hogy milyen karakterkódolást használtunk.

Például, azt szeretnénk ha a szöveg így nézne ki:

mojibake1.gif

de valójában így is kinézhet:

mojibake2.gif

A nem megfelelő kódolási információ nem csak a megjelenített szöveg olvashatóságát rontja, hanem azt is jelentheti, hogy az adatunk nem lesz megtalálható keresővel vagy nem lehet megbízhatóan feldolgozni számos más módon.

Tehát mi az a karakterkódolás?

A szavak és mondatok a szövegben karakterekből jönnek létre. A karakterekre példa a latin á betű vagy a kínai írásjel vagy a dévanágari karakter.

Lehet, hogy Ön nem lát majd néhány karaktert az oldalon mert nincs meg Önnek a szükséges betűkészlet. Ha rákattint arra a helyre ahol egy karaktert kéne látnia, akkor annak a karakternek a képét tudja megtekinteni. Ez az oldal UTF-8-ba lett kódolva.

A karakterek egy karakter készletbe/beállításba vannak csoportosítva (másik nevén repertoárba). Azt nevezzük kódolt karakter beállításnak, amikor minden karakter egy bizonyos számmal van meghatározva. Ezeket kódegységnek is nevezzük. Ezek a kódegységek a számítógépben egy vagy több bájttal vannak kifejezve.

Alapvetően ez azt jelenti, hogy minden karakter a számítógépben kód formájában van tárolva, mint a kémkedésnél a titkosírás például. A karakter kódolás a kulcs hogy a kódot úgymond feltörjük. Ez egy feltérképezési beállítás a bájtok között és enélkül a kulcs nélkül az adat úgy néz ki mint a szemét.

A charset félrevezető kifejezést gyakran arra hivatkozva használják, ami a valóságban a karakterkódolás. Figyeljünk oda a használatánál, illetve ragaszkodjunk a karakterkódolás kifejezéshez, amikor csak lehet.

Sajnos sok különböző karakter beállítás és karakterkódolás létezik, azaz sok eltérő mód a bájtok, kódegységek és karakterek közti feltérképezésre. A következő tábla további részletekkel szolgál azok számára akiket ez érdekel.

Az ISO 8859-1 kódolt karakter beállításban például (másnevén Latin1-ben) a tizes számrendszerbeli kódegység értéke a é betűnek 233. Az ISO 8859-5-ben ugyanez a kódegység a cirill щ karaktert képviseli. Ezek a karakterkészletek kevesebb mint 256 karaktert tartalmaznak és a kódegységeket azonnal bájt értékekké térképezik fel. Így egy 233-mas értékkel rendelkező kódegység egyetlen bájttal van kifejezve. Azonban jegyezzük meg, hogy a bájt képviselheti a(z) é vagy a(z) щ karaktert is, a szövegkörnyezettől függően.

Más módjai is vannak a karakterek kezelésének. Például az Unicode karakterkészlettel kifejezhetjük mindkét karaktert ugyanabban a készletben. Valójában az Unicode tartalmazza a legtöbb karaktert amire valószínűleg valaha szükségünk lesz. Amíg a 233 értéke továbbra is a é karaktert képviseli, a cirill щ karakternek most a kódegység értéke 1097. Ez túl nagy szám, hogy egyetlen bájt fejezze ki*. Ha egy unicode szöveghez az UTF-8 karakterkódolást használjuk, a щ karakter 2 bájttal lesz kifejezve, de a kódegység értéke nem a két bájt összeillesztéséből lesz kinyerve - némileg komplikáltabb dekódolás szükséges. Más Unicode karakterek egy, három vagy négy bájtból vannak feltérképezve az UTF-8 kódolásban.

Az UTF-8 a legszélesebb körben használt mód, hogy Unicode szöveget jelenítsünk meg a weboldalon. Azonban az UTF-8 az egyetlen lehetséges mód az Unicode karakterek kódolására. Más szavakkal egyetlen kódegységet az Unicode karakterkészletben valójában különböző bájtsorozatba lehet feltérképezni, attól függően, hogy melyik kódolást használja a dokumentum. Az Unicode kódegység bájtokká térképezhető UTF-8, UTF-16 vagy UTF-32 kódolással. A dévanágari karakter a 2325 kódegységgel (ami 915 hexadecimális jelrendszerben) két bájttal van kifejezve UTF-16 kódolásnál (09 15), három bájttal UTF-8 (E0 A4 95) vagy négy bájttal UTF-32 kódolásnál (00 00 09 15).

* Napjainkban a legtöbb bájt 8 bitből áll. Csak 28 (azaz 256) féle egyedi módon lehet kombinálni a 8 bitet.

Szintén jegyezzük meg hogy a kódegység számai általában hexadecimális jelrendszerben vannak kifejezve - azaz 16-os számrendszerben. Például 233 hexadecimális jelrendszerben E9. Az Unicode kódegység értékei tipikusan U+00E9 formában vannak írva.

További bonyodalmak lehetnek a fenti leírtakon túl (mint például a bájt sorrend és a menekülő számsorok). A fentiek megmutatják miért fontos, hogy az applikáció amivel dolgozunk tudja, hogy melyik karakterkódolás a megfelelő az adatunkhoz és hogy kezelni tudja a kódolást.

Legtöbbször azonban nem szükséges tudnunk a részleteket. Elég csak megbizonyosodnunk hogy megfontoljuk a Hogyan érint ez engem? szekció tanácsait lejjebb.

A betűtípusok hogyan illeszkednek bele ebbe az egészbe?

A betűtípus egy írásjel kollekció, azaz olyan meghatározott formák, amelyeket karakterek megjelenítésére használunk.

Amint az applikációnk megállapította hogy milyen karakterekkel van dolga, a betűtípusban megkeresi az írásjelet hogy megjelenítse azokat a karaktereket. (Természetesen ha a kódolási információ rossz volt, akkor a rossz karakterekhez fog írásjelet keresni.)

Egy adott betűtípus rendszerint egy karakterkészletet lefed vagy egy nagyobb karakterkészlet esetében, mint az Unicode csak egy részüket. Ha a betűtípusunknak nincs írásjele egy adott karakterhez, néhány alkalmazás megkeresi a hiányzó karaktert más, a rendszerünkön található betűtípusban (ami azt jelenti, hogy az írásjel másképp fog kinézni mint a körülötte lévő többi szöveg, nagyjából úgy mondjuk mint egy váltságdíj követelés). Egyébként meg tipikusan egy négyzetet, egy kérdőjelet vagy más karaktert fogunk látni helyette. Például:

mojibake3.gif

Hogyan érint ez engem?

Tartalomszerkesztőként vagy fejlesztőként a legjobb karakter kódolást szükséges kiválasztanunk az adatunknak vagy tartalmunknak. Az Unicode kódolás gyakran jó választás, mivel egyetlen kódolással igen sok karaktert tudunk kezelni. Ez nagyban leegyszerűsíti a dolgokat. Emellett ha a teljes rendszerünkben Unicode-ot használunk, az eltünteti annak a szükségét hogy nyomozzunk és konvertáljunk a különféle karakterkódolások között.

A tartalomszerkesztőknek ellenőrizniük kell, hogy milyen kódolásban menti el a szöveget a szerkesztőjük vagy a szkriptjük és hogy hogyan mentsék el a szöveget a kiválasztott kódolásban. Jegyezzük meg, hogy a különböző kódolás deklarálásával nem fognak megváltozni a bájtok; a szöveget is abba a kódolásba kell elmentenünk.

A tartalomszerkesztőknek ki kell találniuk hogy hogyan deklarálják a karakterkódolást amit a dokumentumban használnak. Szükségük lehet arra is, hogy megbizonyosodjanak arról, hogy a szerver a dokumentumot a megfelelő HTTP deklarációkkal tálalja.

A fejlesztőknek meg kell bizonyosodniuk arról hogy a rendszer különféle részei tudnak egymással kommunikálni és értik hogy melyik karakterkódolás van alkalmazva, tovább támogatják az összes szükséges kódolást és karaktert.

A következő szekcióban található linkek további olvasnivalót nyújtanak ebben a témában.

Mellesleg

The article Character encodings: Essential concepts is worth a read at this point, as it provides some gentle introductions to related topics, such as Unicode, UTF-8, Character sets, coded character sets, and encodings, the document character set, character escapes and the HTTP header.

Mondja el nekünk mit gondol! (Angol).

Feliratkozás RSS Feed-re.

Új források

Kezdőoldal hírek

Twitter (Kezdőoldal hírek)

‎@webi18n

További olvasnivaló

Szerző: Richard Ishida, W3C. Fordító: Dénes Kohn, Metaphraser - Translation Company.

Valid XHTML 1.0!
Valid CSS!
UTF-8-ben kódolva!

Angolról fordítva: 2008-01-31. A lefordított verzió utolsó módosítása: 2009-09-14 16:17 GMT

A dokumentum módosításainak a történetéhez keresse ezt az i18n blogban: qa-what-is-encoding