UTF-32 (Unicode Transformation Format, 32 bit) è una codifica di caratteri Unicode in sequenze di numeri a 32-bit. È conosciuta anche come UCS-4 (Universal Character Set a 4 byte).

A differenza delle altre codifiche Unicode (UTF-8, UTF-16) che usano una rappresentazione dei dati a lunghezza variabile, UTF-32 è a lunghezza fissa. Proprio l'uso di 4 byte per ogni carattere lo porta a non essere molto efficiente sulla gestione dello spazio. Nello specifico, i caratteri al di fuori del Basic Multilingual Plane sono così rari che per molti testi possono essere considerati come inesistenti (ai fini del calcolo della dimensione), ma questo fatto rende la dimensione del testo codificato in UTF-32 da due a quattro volte più grande rispetto alle altre codifiche.

Anche se l'avere un numero fisso di byte per carattere da codificare può sembrare più semplice, questa codifica è usata meno frequentemente delle altre. Facilita la divisione di stringhe, ma non significativamente se confrontata con UTF-8 e UTF-16. Non semplifica il calcolo della lunghezza effettiva della stringa visualizzata se non in limitati casi, perché, anche con font a larghezza fissa ci possono essere più punti di codifica per ogni posizione di carattere (i caratteri combinati) o più di un carattere visualizzato per una singola codifica (per esempio negli ideogrammi CJK). I caratteri combinati fanno sì che gli editor di testo non possano trattare ogni singolo carattere codificato come un singolo carattere che sia possibile editare.

Sebbene in generale poco utilizzata, questa codifica ha una proprietà che può renderla interessante in qualche caso: il valore numerico a 32 bit che codifica in UTF-32 ciascun code point (punto di codifica) del set Unicode, è esattamente il valore numerico che identifica quel code point. In altri termini, se il nome del code point Unicode è U+XYZK (con XYZK cifre esadecimali), la rappresentazione esadecimale del numero di 32 bit che ne rappresenta la codifica UTF-32 è esattamente XYZK.

Storia

modifica

Lo standard ISO 10646 definisce un encoding form a 31 bit chiamato UCS-4, nel quale ciascun carattere codificato nell'Universal Character Set (UCS) è rappresentato da un numero compreso tra 0 e 7FFFFFFF esadecimale.

UCS-4 è sufficiente per rappresentare tutti i caratteri del range definito da Unicode, che ha 1.114.112 (= 220+216) codici (code points) e quindi richiede valori da 0 e 10FFFF esadecimale. Qualcuno considerò uno spreco riservare un'area di space code così grande per mappare un relativamente piccolo insieme di codici e così venne proposta una nuova codifica, UTF-32. Esso è un sottoinsieme di UCS-4 che usa codici a 32 bit nel code space 0-10FFFF.

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

ASCII esteso

caratteri (code points) ed è stato in seguito esteso a 1.114.112 (= 220 + 216) e finora ne sono stati assegnati circa 101.000. I primi 256 code point ricalcano

MacOS Ventura

Hexadecimal Input does not work if the UCS/Unicode four-digit hexadecimal code point number begins and ends with a zero, and what is done about it?, su discussions

IPv4

della lunghezza del campo facoltativo Options Differentiated Services Code Point (DSCP) Originariamente definito come type of service (ToS), questo campo

IEEE 802.1Q

control information TCI (detto anche VLAN Tag) così suddiviso: Priority Code Point (PCP): Questo campo a 3 bit può essere utilizzato per indicare un livello

UTF-16

surrogata possano essere confusi con un carattere Unicode valido. Ciascun code point UTF-16 viene memorizzato in un intero a 16 bit (uint16). Dato che l'ordine

Type of Service

<=>Precedenza IP" tabella di conversione valori DSCP(Differentiated Services Code Point),TOS (Type of service) Esempio basato sulla tabella precedente: IPP =

United States Military Academy

Accademia militare di West Point) è un'accademia militare federale dell'Esercito degli Stati Uniti. È situata a West Point, una località della contea

Function point

Il function point è un'unità di misura utilizzata nell'ambito dell'ingegneria del software per esprimere la dimensione delle funzionalità fornite da un