ASCII standard (quello vero, a 7 bit).
Purtroppo dobbiamo aver a che fare con chi paga il nostro lavoro, gli utenti, quindi 96 caratteri stampabili e 32 di controllo sono pochi.
Se Unicode01000001, codificata in Unicode a 32 bit è 00000000000000000000000001000001UTF-8.
Lo scopo di UTF-8 è quello di rappresentare tutti i caratteri di Unicode utilizzando una codifica a lunghezza variabile senza mai avere una sequenza di 8 bit consecutivi a zero.
La codifica a lunghezza variabile è un espediente utilizzato spesso in informatica e non solo: il sistema di prefissi telefonici italiani si basa sulla codifica a lunghezza variabile: esistono i prefissi 02 e 06 ma nessun altro prefisso inizia con 02 o 06. Parimenti, esistono tanti prefissi che iniziano con 01 (Piemonte e Liguria), 03 (Lombardia e, per un certo periodo, i cellulari), 04 (Triveneto ed Emilia), ma nessun prefisso è esattamente 01, 03 o 04.
UTF-8 parte da ASCII: se deve essere rappresentato un carattere ASCII (da 0 a 127), si utilizzano 8 bit con il bit più alto a 0 e gli altri sette che rappresentano il carattere. Quindi la A resta 01000001.
Il passo successivo è utilizzare due byte codificati in un modo particolare per rappresentare valori fino a 11 bit in questo modo:
110xxxxx 10xxxxxx
Per rappresentare valori fino a 16 bit si utilizzano tre byte in questo formato:
1110xxxx 10xxxxxx 10xxxxxx
e così via fino ad arrivare alla rappresentazione di 31 bit:
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0xxxxxxx oppure 11xxxxxx, ogni altra sequenza indica la continuazione della codifica di un carattere.
Inoltre, in una codifica multibyte, nel primo byte di codifica il numero di bit a 1 partendo dal più alto prima di incontrare il primo zero indica il numero di byte che compongono la codifica.
Queste due semplici regole permettono di gestire in maniera molto efficace la scansione dei testi da parte dei programmi.
Nel novembre 2003 lo spazio di codifica di UTF-8 è stato limitato da RFC3629 a
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
rimuovendo la codifica c cinque sei byte per evitare problemi con la codifica UTF-16.
In questo momento UTF-8 è il metodo di codifica caratteri più utilizzato e lo resterà probabilmente finché qualcuno non troverà un sistema migliore, oppure quando 32 o 64 bit per carattere diventeranno una dimensione ragionevole per poter evitare codifiche a lunghezza variabile.
Lascia un commento