UTF-8: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Descrizione tecnica: tabella più chiara |
|||
Riga 16:
== Descrizione tecnica==
UTF-8 viene descritto nello standard RFC 3629 (''UTF-8, un formato di trasformazione dell'[[ISO 10646]]''). Brevemente, i bit che compongono un carattere Unicode vengono suddivisi in gruppi, che vengono poi ripartiti tra i bit meno significativi all'interno dei byte che formano la codifica UTF-8 del carattere.
I caratteri il cui valore unicode è inferiore a U+0080 vengono rappresentati con un singolo byte contenente il loro valore; essi corrispondono esattamente ai 128 caratteri ASCII. In tutti gli altri casi sono necessari fino a 4 byte, ognuno di questi con il bit più significativo impostato a 1, in modo da distinguerli dalla rappresentazione dei caratteri dell'alfabeto ASCII a 7 bit, in particolare quelli il cui codice unicode è inferiore a U+0020, tradizionalmente utilizzati come caratteri di controllo.
Riga 51:
Per esempio, il carattere [[aleph|alef]] (א), corrispondente all'Unicode U+05D0, viene rappresentato in UTF-8 con questo procedimento:
* ricade nell'intervallo da 0x0080 a 0x07FF. Secondo la tabella verrà rappresentato con due byte
* l'esadecimale 0x05D0 equivale al binario 101-1101-0000
* gli undici bit vengono copiati in ordine nelle posizioni marcate con "x"
* il risultato finale è la coppia di byte 11010111 10010000, o in esadecimale 0xD7 0x90.
Riassumendo, i primi 128 caratteri vengono rappresentati con un singolo byte. I successivi 1920 ne richiedono due, e comprendono gli alfabeti [[Alfabeto latino|Latino]] con [[Diacritico|diacritici]], [[Alfabeto greco|Greco]], [[Alfabeto cirillico|Cirillico]], [[Alfabeto copto|Copto]], [[Alfabeto armeno|Armeno]], [[Alfabeto ebraico|Ebraico]] e [[Alfabeto arabo|Arabo]]. I restanti caratteri nel ''Basic Multilingual Plane'' hanno bisogno di tre byte, tutto il resto di quattro.
|