„Karakterkódolás” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Addbot (vitalap | szerkesztései)
a Bot: 36 interwiki link migrálva a Wikidata d:q184759 adatába
BinBot (vitalap | szerkesztései)
a 4 bites stb. kötőjel nélkül; OH 411. (helyesírási javítás kézi ellenőrzéssel)
19. sor:
A '''kódolt karakterhalmaz''', (coded character set) határozza meg azt, ahogyan megjeleníti a karakterkészlet egy adott elemét, egy nem negatív, egész számként, amit '''kód''' vagy '''kód pont''' néven is neveznek. Például, egy adott karakterkészlet esetében egy karakterhez, ami a Latin ábécé nagy "A" betűjét jelenti, a 65 egész értéket rendelhetjük, a a "B" karakterhez a 66-ot, és így tovább. Az összes kezelni kívánt karakter a hozzájuk tartozó egész számokkal együtt alkotja a kódolt karakaterek halmazát. A többszörösen kódolt karakterek halmaza, lehet megosztott, mint például az [[ISO-8859-1]] és az IBM code pages [[code page 037|037]] és [[code page 500|500]]. A karakterek azonosak, azonban más kódok tartoz(hat)nak hozzájuk. Egy kódolt karakterhalmazban egy kódérték, vagy kódpont csak egy karaktert jelölhet ki.
 
A '''karakterkódolási forma''' (character encoding form – CEF) írja le azt a konverziót, ami meghatározza, hogyan lesznek a kódolt karakterek halmazában lévő egész értékekből (a kódpontok) a korlátozott hosszúságú egészek, a '''kódértékek''', amiket a rendszer tárolni tud, azaz fix hosszúságú, bináris számként megjeleníteni. Például, egy rendszer, ami a numerikus információkat 16- bites egységekben tárolja, a 0 és a 65 535 közé eső egész számokat képes egy egységben tárolni. A nagyobb egészeket viszon csak úgy tudja ábrázolni, ha több, mint egy 16- bites egységet használ. Ez az, amit a CEF meghatároz: meghatároz egy leképezési eljárást, amely a lehetséges egyedi kód'''pont'''ok tartományát, amely legyen mondjuk 0 és 1,4 millió közötti, átviszi ''egy vagy több'', mondjuk a 0 és a 65 535 közé eső tartományba eső értékek sorozatává, ami a kód''érték''.
 
Az egyszerűbb karakterkódolási formát (CEF) használó kódok egyszerűen elegendően nagy egységet választanak a kódértékek tárolására, tehát a kódolt karakterek halmazát egy-az-egy megfeleltetésbe hozzák az adott egységen tárolható értékek halmazával. Az eljárás jól működik addig, amig a kódolt karakterek halmaza megfeleltethető 8-biten tárolható értékek halmazának (ami igaz a régebbi nem CJK kódokra), illetve megfeleltetehető 16-biten tárolható értékek halmazának (a Unicode korábbi változata). Azonban a kódolt karakterek halmazának mérete egyre növekszik (a modern Unicode legalább 21 bitet igényel karakterenként), az egyszerű módszer egyre kevésbé hatékony, és egyre nehezebb a létező rendszerekben megvalósítani a nagyobb/hosszabb kód értékek használatát. Ezért a legtöbb rendszer a Unicode régebbi változatait használja, vagy az [[UTF-8]]-at, ahol a Unicode kód pontjait változó hosszúságú, 8- bites értékek sorozatára, vagy az [[UTF-16]]-ot, ahol a Unicode kód pontjait változó hosszúságú, 16- bites értékek sorozatára konvertálja.
 
Végül, egy '''karakterkódolási séma''', (character encoding scheme – CES) határozza meg, hogy hogyan lehet a fix hosszúságú, egész számot, a kód értékét, ami egy 8 bites egységekből álló sorozatként tárolni, akár a memóriában, akár egy fájlrendszerben vagy így továbbítani adatátviteli vonalon. A Unicode a legtöbb esetben egy egyszerű karakterkódolási sémát használ: egyszerűen meghatározza, hogy egy egész byte-jainak big-[[endian]] vagy little-endian elrendezésűnek kell lennie (az UTF-8 estén még ez sem szükséges). Bár léteznek összetett karakter dekódolási sémák is, amelyek eszkép szekvenciákat használnak a számos egyszerű séma közötti átkapcsolásra (mint az [[ISO 2022]]), és léteznek tömörítő sémák, amlyek megpróbálják minimalizálni a kódegységekre jutó byte-ok számát (úgy mint [[Standard Compression Scheme for Unicode|SCSU]], [[BOCU]], és [[Punycode]]).