UTF-32/UCS-4

A Wikipédiából, a szabad enciklopédiából
(UCS-4 szócikkből átirányítva)

A UTF-32 és UCS-4 különböző nevek az Unicode karakterek kódolási eljárására, amely pontosan 32 bitet használ minden egyes Unicode kódpont ábrázolására. Ez a módszer a legegyszerűbb kódolási forma, mivel minden más Unicode kódolási séma valamilyen megoldással változó hosszúságú kódokat rendel a különböző kódpont értékekhez.

Ennek ellenére, mivel az UTF-32 4 byte-ot használ minden karakter ábrázolásánál, a megoldás nem a legjobb területkihasználású. Különösen igaz ez a nem-BMP karakterekre, amelyek a legtöbb szövegben nagyon ritkán fordulnak elő, így érdemes lenne egy nemlétező, hossz csökkentési módot megfontolni. Ez azt jelenti, hogy az UTF-32 általában legalább kétszer annyi helyet igényel, mint más kódolási sémák, ami néhány esetben még négyszer akkora helyigényt is jelenthet.

Ugyan az első pillanatban nagyon hasznosnak látszik a fix számú byte kódpontonkénti hozzárendelés, a gyakorlatban mégsem nagyon használják. A viszonylag egyszerűen megvalósított csonkolások miatt az UTF-8 és az UTF-16 elterjedtségével össze sem lehet hasonlítani az elterjedtségét. A fix 4 byte-os hosszak ellenére egyszerűen nem határozható meg a megjelenítés helyigénye (összetett karakterek miatt), különösen igaz mindez a CJK szóképek esetében, ahol az "egy kódpont karakterenként" elv nem is igaz minden esetben. Az összetett jeleket a szövegszerkesztők sem tudják egyszerre feldolgozni, szemben a többi egy kódpont egy szerkesztési egység közelítés miatt.

Ezen okok miatt az UTF-32 a gyakorlatban kevésbé elterjedt, mint az UTF-8 és az UTF-16 a Unicode szövegek normál kódolására/dekódolására.

Története[szerkesztés]

Az eredeti ISO/IEC 10646 szabvány egy 31 bites kódolási formát határozott meg, aminek UCS-4 volt a neve, amelyben minden kódolt karakter az univerzális karakterkészlet (UCS) egy elemének felelt meg, és egy 32 bites rendszerhez igazodó, egész kódérték reprezentálta a kódtérben ami a 0 és a hexadecimális 7FFFFFFF közé esett.

Az UCS-4 megfelelt a Unicode kódtér megjelenítésére, mivel ez 1114112 (= 220+216) kódpontot tartalmazott, így a megjelenítéshez csak hexadecimális 10FFFF alatti értékek voltak szükségesek. Többen feleslegesnek tartották, a nagyon nagykód tér fenntartását a relatíve kicsiny kódpontok halmazához, ezért egy új kódolási formát, a UTF-32-t javasolták. Az UTF-32 részhalmaza az UCS-2-nek, és csak 32 bites kódértékeket használ a 0 és a 10FFFF kódtérben.

Az UTF-32 eredetileg az UCS-4 szabvány egy részhalmaza volt, de a JTC1/SC2/WG2 "Principles and Procedures", az "Elvek és eljárások" dokumentuma meghatározta a jövőben minden BMP-hez vagy az első 14 kiegészítő laphoz történő karakter hozzárendeléseket, és visszavonta a megelőző saját használatú kódpozíciók használatát a 60-7F csoportokban az EO és FF közötti lapokon.

Az UCS-4 szerinti valamint az UTF-32 szerinti szabványt most már azonosnak lehet tekinteni, tárolás szempontjából, mivel az UTF-32 szabvány figyelembe veszi a Unicode szemantikájából származó kiegészítő szempontokat is.

Egyéb, angol nyelvű linkek[szerkesztés]