Tietojenkäsittelytieteen UTF-32 ( Eng. Unicode Transformation Format ) tai UCS-4 (universal character set, eng. Universal Character Set ) on yksi tavoista koodata Unicode - merkkejä käyttämällä täsmälleen 32 bittiä minkä tahansa merkin koodaamiseen. Loput koodaukset, UTF-8 ja UTF-16, käyttävät muuttuvaa määrää tavuja edustamaan merkkejä. UTF-32-merkki on suora esitys sen koodipaikasta ( Koodipiste).
UTF-32:n tärkein etu muuttuvapituisiin koodauksiin verrattuna on, että Unicode-merkit ovat suoraan indeksoitavissa. N:nnen koodipaikan saaminen on toimenpide, joka vie saman ajan. Sitä vastoin muuttuvapituiset koodit vaativat peräkkäisen pääsyn n:nnen koodin paikkaan. Tämän ansiosta UTF-32-merkkijonojen merkkien korvaaminen on helppoa käyttämällä kokonaislukua indeksinä, kuten yleensä tehdään ASCII -merkkijonojen kohdalla .
UTF-32:n suurin haittapuoli on sen tehoton tilankäyttö, sillä merkin tallentamiseen käytetään neljä tavua. Koodiavaruuden nollatason (perustason) ulkopuolella olevia merkkejä käytetään harvoin useimmissa teksteissä. Siksi merkkijonojen käyttämän tilan tuplaaminen UTF-16:een verrattuna UTF-32:ssa ei ole perusteltua.
Vaikka kiinteän tavumäärän käyttäminen merkkiä kohden on kätevää, se ei ole niin hyvää kuin miltä se kuulostaa. Merkkijonojen katkaisu on helpompi toteuttaa kuin UTF-8 ja UTF-16. Tämä ei kuitenkaan nopeuta tietyn siirtymän löytämistä merkkijonosta, koska siirtymä voidaan laskea myös kiinteän kokoisille koodauksille. Tämä ei helpota näytettävän viivan leveyden laskemista, paitsi joissain tapauksissa, koska jopa "kiinteäleveä" merkki voidaan saada yhdistämällä tavallinen merkki leveättömään muuntajaan. Esimerkiksi kirjain "y" voidaan johtaa kirjaimesta "i" ja " hook over letter " -diakriittisestä merkistä . Tällaisten merkkien yhdistelmä tarkoittaa, että tekstieditorit eivät voi käsitellä 32-bittistä koodia muokkausyksikkönä. Toimittajat, jotka rajoittuvat työskentelemään vasemmalta oikealle ja valmiiksi kirjoitettujen merkkikielien kanssa, voivat käyttää kiinteän kokoisia merkkejä . Mutta tällaiset editorit eivät todennäköisesti tue merkkejä kooditilan nollatason (perustason) ulkopuolella, eivätkä ne todennäköisesti toimi yhtä hyvin UTF-16-merkkien kanssa.
ISO 10646 -standardi määrittelee 31-bittisen koodausmuodon nimeltä UCS-4, jossa jokaista koodattua merkkiä edustaa 32-bittinen koodiarvo numeroiden koodiavaruudessa 0 - 7FFFFFFFF.
Koska todellisuudessa käytetään vain 17 tasoa, kaikkien merkkien koodien arvot ovat 0 - 0x10FFFF. UTF-32 on UCS-4:n osajoukko, joka käyttää vain tätä aluetta. Koska JTC1/SC2/WG2-dokumentissa todetaan, että kaikki tulevat merkkimääritykset rajoittuvat kooditilan nollatasoon (perus) tai ensimmäisiin 14 lisätasoon, UTF-32 pystyy edustamaan kaikkia Unicode-merkkejä. Vastaavasti UCS-4 ja UTF-32 ovat tällä hetkellä identtisiä, paitsi että UTF-32-standardissa on ylimääräistä Unicode-semantiikkaa.
UTF-32:ta ei käytetä ensisijaisesti merkkijonoissa, vaan sisäisissä sovellusliittymissä , joissa data on yksittäinen koodipiste tai kuvio . Kun esimerkiksi piirrät tekstiä, viimeinen vaihe muodostaa luettelon rakenteista, joista jokainen sisältää x- ja y-paikat, attribuutit ja yhden UTF-32-merkin, joka identifioi piirrettävän kuvion. Usein kunkin 32-bittisen merkin "käyttämättömät" 11 bittiä tallentavat ylimääräistä tietoa.
UTF-32:ta käytetään merkkijonojen tallentamiseen Unixissa , kun wchar_t -tyyppi on määritetty 32-bittiseksi. Python - ohjelmat 3.2:een asti on saatettu käännellä käyttämään UTF-32:ta UTF-16:n sijaan. Versiosta 3.3 alkaen UTF-16:n tuki on poistettu ja merkkijonot tallennetaan UTF-32:een, mutta etunollat optimoidaan, jos niitä ei käytetä. Windowsissa , jossa wchar_t-tyyppi on 16-bittinen, UTF-32-merkkijonoja ei käytetä melkein koskaan .
HTML5 - standardi sanoo, että "Tekijät eivät saa käyttää UTF-32:ta, koska tässä määrittelyssä kuvatut koodausalgoritmit eivät eroa sitä UTF-16:sta."
Merkkien koodaukset | |
---|---|
Historialliset koodaukset | lisäkomp. semafori (Makarov) morsia Bodo MTK-2 comp. 6-bittinen SCP RADIX-50 EBCDIC KOI-7 ISO 646 |
moderni 8-bittinen esitys | symboleja ASCII ei-ASCII 8-bittiset koodisivut Kyrillinen KOI-8 Peruskoodaus MacCyrillic ISO 8859 1 (lat.) 2 3 neljä 5 (kir.) 6 7 kahdeksan 9 kymmenen yksitoista 12 13 neljätoista 15 (€) 16 Windows 1250 1251 (kir.) 1252 1253 1254 1255 1256 1257 1258 WGL4 IBM ja DOS 437 850 852 855 866 "vaihtoehto" MIC |
Monitavu | perinteinen DBCS GB2312 HTML unicode UTF-32 UTF-16 UTF-8 merkkiluettelo Kyrillinen |
käyttöliittymä näppäimistöasettelu alue rivin käännös fontti translitterointi mukautettuja fontteja apuohjelmia iconv ennätys |