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
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.
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.
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).
Getting started? Introducing Character Sets and Encodings – Points you to other W3C documents related to character sets and encodings http://www.w3.org/International/getting-started/characters
Tutorial, Handling character encodings in HTML and CSS – Advice on how to choose an encoding, declare it, and other related topics for HTML and CSS. http://www.w3.org/International/tutorials/tutorial-char-enc/
Setting the HTTP charset parameter – Working with character encoding declarations on the server or in scripting languages. http://www.w3.org/International/O-HTTP-charset
Setting encoding in web authoring applications – How to get your editor to save in a different encoding for a list of editing environments. http://www.w3.org/International/questions/qa-setting-encoding-in-applications
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) – by Joel Spolsky (takes you a little further into character encodings, but still gently) http://www.joelonsoftware.com/articles/Unicode.html
Related links, Authoring HTML & CSS – Characters http://www.w3.org/International/techniques/authoring-html#charset
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
Copyright © 2008-2009 W3C® (MIT, ERCIM, Keio, Beihang), 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.