UTF-32/UCS-4
A Wikipédiából, a szabad lexikonból.
Unicode |
---|
Kódolások
|
UCS |
Elhelyezkedés |
Kétirányú szöveg |
BOM |
Han egységesítés |
Unicode és HTML |
Unicode és e-mail |
Unicode fontok |
UTF-32 és UCS-4 különböző nevei egy, 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 általban 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 elrejedtségét. A fix 4 byte-os hosszak ellenére egyszerűen nem határozható meg a megjelenítés helyigénye (összetett karaketerek 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ópont 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.
[szerkesztés] Története
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 karakter készlet (UCS) egy elemének felelt meg, és egy 32-bites rendszerehez 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.
[szerkesztés] Lásd még
- Unicode kódolások összehasonlítása
[szerkesztés] Egyéb, angol nyelvű linkek
- The Unicode Standard 4.1, chapter 3 - Az UTF-32 formális meghatározása §3.10, D43-D45
- Unicode Standard Annex #19 - Az UTF-32 formális meghatározása a Unicode 3.x esetében (2001. március; utolsó módosítás 2002. március)
- Registration of new charsets: UTF-32, UTF-32BE, UTF-32LE - announcement of UTF-32 being added to the IANA charset registry (April 2002)