Dall’insieme delle tabelle ASCII estese è nato lo standard ISO12 8859-1 (o Latin-1) che raccoglie in una tabella ASCII estesa i principali caratteri delle varie lingue, in modo tale che gli svedesi potessero scrivere “kn¨ackebr¨od” ed i danesi “rødgrød med fløde”. Tale standard non era sufficiente a soddisfare tutte le esigenze delle varie lingue, quindi sono nati altri standard, come ISO 8859-2 (per le lingue dell’europa centrale), KOI-8 (per la lingua russa), JIS (per la lingua giapponese), GB5 (per la lingua cinese), ...
L’utilizzo di varie tabelle di codifica delle informazioni alfanumeriche, porta a correre il rischio di perdere delle informazioni quando le stesse passano da un sistema all’altro. A tale scopo è nato un sistema di codifica detto Unicode13 che associa un valore univoco (espresso su più di un byte) ad ogni carattere, indipendentemente dal sistema e dalla lingua utilizzata. Parallelamente, con lo standard ISO/IEC 10646-1 è stata definita una codifica numerica per ogni simbolo di ogni lingua, l’UCS (Universal Character Set), che ha essenzialmente la stessa codifica di Unicode. Unicode è supportato da molti sistemi operativi, da tutti i più moderni web browser e da molti altri prodotti.
Poiché la codifica Unicode non è molto agevole da utilizzare così com’è definita, a causa del fatto che molte delle routine già scritte si troverebbero ad avere a che fare con un elevato numero di byte nulli14 (specialmente per i simboli la cui codifica è rappresentabile per mezzo di un solo byte significativo), è stata definita la codifica UTF-8 (Unicode Transformation Format-8), come descritto nella norma ISO 10646-1:2000 Annex D e nella RFC 2279. Si tratta di una codifica che associa ad ogni carattere un numero di byte variabile da 1 fino a 6, dipendentemente dalla codifica dello stesso secondo l’Unicode di base (v. tab. 1.5)15: essa codifica ulteriormente le coppie di byte che rappresentano i caratteri alfanumerici, in maniera tale da non far risultare byte nulli, tranne nel caso in cui il carattere da codificare sia proprio il carattere NUL. UTF-8 è stata definita in modo che i caratteri ASCII standard (00 H - 7FH) vengono codificati su un solo byte ed assumono i valori previsti dalla codifica ASCII (v. tab. 1.3). Quindi tale codifica è trasparente per i caratteri ASCII standard.
![]()
|
Per ulteriori informazioni si vedano anche le man page charset(7), ascii(7), iso_8859-1(7), unicode(7) e utf-8(7).