Timeline
Chat
Prospettiva

UTF-16

codifica di caratteri Unicode in sequenze di numeri a 16 bit Da Wikipedia, l'enciclopedia libera

Remove ads

UTF-16 (Unicode Transformation Format, 16 bit) è una codifica di caratteri Unicode in sequenze di numeri a 16-bit. UTF-16 è definito ufficialmente nell'allegato Q dello standard ISO/IEC 10646, e viene descritto nella versione 3.0 e successive de "the Unicode standard", oltre che nel documento RFC 2781 della IETF.

Questa pagina contiene caratteri particolari, che potrebbero non funzionare sul tuo sistema ed essere sostituiti da segnaposto (es. quadratini). Vedi Aiuto:Unicode.
Remove ads

Codifica UTF-16

In UTF-16 i caratteri di Unicode con valore fino a 65535 (0xFFFF) vengono rappresentati con il loro valore numerico, espresso in 16 bit. I caratteri al di fuori del Basic Multilingual Plane, il cui codice è superiore a 65535 (0xFFFF) e non rappresentabile direttamente con 16 bit, vengono rappresentati con una coppia surrogata, ovvero una coppia di codici nell'intervallo da 0xD800 a 0xDFFF. Per esempio:

  • il carattere A, corrispondente al codice 65 (0x41), viene rappresentato come 0x0041
  • il carattere 0x10000 diventa la coppia 0xD800, 0xDC00
  • il carattere 0x10FFFD, corrispondente al limite superiore di Unicode, viene rappresentato con la sequenza 0xDBFF, 0xDFFD.

Unicode non assegna a nessun carattere un valore compreso tra 0xD800 e 0xDFFF, evitando in questo modo che i singoli elementi di una coppia surrogata possano essere confusi con un carattere Unicode valido.

Remove ads

Varianti di UTF-16

Riepilogo
Prospettiva

Ciascun code point UTF-16 viene memorizzato in un intero a 16 bit (uint16). Dato che l'ordine dei byte in una parola varia a seconda dell'architettura del calcolatore, UTF-16 prevede tre schemi di codifica, UTF-16, UTF-16LE (Little Endian) e UTF-16BE (Big Endian).

La codifica UTF-16 impone che l'ordine dei byte venga dichiarato esplicitamente aggiungendo un Byte Order Mark come prefisso di ogni testo codificato. Il BOM è la forma codificata del carattere Zero width, non breaking space, corrispondente all'esadecimale 0xFEFF, rappresentato come 0xFE,0xFF sui sistemi big endian e 0xFF, 0xFE sui sistemi little endian.

Le codifiche UTF-16BE e UTF-16LE sono identiche alla codifica UTF-16, con l'eccezione che l'ordine dei byte è implicito, big endian per UTF-16BE, e little endian per UTF-16LE. Il carattere 0xFEFF all'inizio di un testo rappresentato con una di queste due codifiche viene considerato parte del testo anziché come BOM.

La IANA ha approvato i nomi UTF-16, UTF-16BE e UTF-16LE, indifferentemente maiuscoli o minuscoli, per l'uso su Internet. I nomi UTF_16 o UTF16, comunemente usati, potrebbero essere riconosciuti da specifici linguaggi di programmazione o applicazioni, ma non sono ufficialmente validi.

UTF-16 è la rappresentazione nativa del testo per le versioni di Windows basate su NT, per il linguaggio di programmazione Java e per gli ambienti .NET e macOS Cocoa e Core.

Remove ads

Esempi

Ulteriori informazioni Carattere Unicode, Nome ...
Ulteriori informazioni Tipo di codifica, Ordine dei byte ...

Procedura di codifica UTF-16

Supponiamo di voler codificare il carattere U+64321 (esadecimale 0x64321). Essendo superiore a 0xFFFF deve essere rappresentato con una coppia surrogata, in questo modo:

v  = 0x64321
v′ = v - 0x10000
   = 0x54321
   = 0101 0100 0011 0010 0001
vh = 0101010000 // 10 bit alti di v′
vl = 1100100001 // 10 bit bassi di v′
w1 = 0xD800 //  w1 e w2 vengono inizializzati con la prima coppia surrogata
w2 = 0xDC00
w1 = w1 | vh
   = 1101 1000 0000 0000 | 01 0101 0000
   = 1101 1001 0101 0000
   = 0xD950
w2 = w2 | vl
   = 1101 1100 0000 0000 | 11 0010 0001
   = 1101 1111 0010 0001
   = 0xDF21

La rappresentazione del carattere U+64321 è quindi la seguente coppia di parole di 16 bit: 0xD950 0xDF21.

Remove ads

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads