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
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
Mi az a karakterkódolás és 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:
de valójában így is kinézhet:
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.
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.
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).
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í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:
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.
Mondja el nekünk mit gondol! (Angol).
Angolról fordítva: 2008-01-31. A lefordított verzió utolsó módosítása: 2009-08-26 11:52 GMT
A dokumentum módosításainak a történetéhez keresse ezt az i18n blogban: qa-what-is-encoding
Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.