UTF-32/UCS-4
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
Unicode |
---|
UCS |
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]- 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)