La necessità di rappresentare mediante cifre binarie (0 e
1) quasiasi informazione richiede che a ciascun carattere
(simboli alfabetici maiuscoli e minuscoli, segni di interpunzione,
cifre) venga associata una sequenza di cifre binarie.
L' associazione è in principio arbitraria. Per permettere un
ragionevole grado di interoperabilità, si è reso
però necessario procedere a delle standardizzazioni.
Storicamente le prime codifice, BCD, EBCDIC, ASCII associavano
ad ogni carattere dell' alfabeto inglese (niente lettere
accentate, dunque) una sequenza di bit (4 per BCD, 8 per EBCDIC e 7 per
ASCII).
Successivamente, l' esigenza di coprire insiemi di caratteri
diversi per il supporto dei molti alfabeti esistenti, ha richiesto
ampliamenti di questi schemi di codifica.
Così lo schema di codifica ASCII si è evoluto in schemi estesi a 8
bit standardizzati da organismi nazionali ed internazionali (ISO: International Organization for
Standardization; IEC: Internationa
Electrotechnical Commission). Lo standard ISO 8859 prevede
codifiche a 8 bit per molti dei linguaggi alfabetici esistenti (ISO 8859-1, detto anche Latin1, per
i linguaggi dell'Europa Occidentale. ISO 8859-2 per i linguaggi
dell'Europa Orientale, ISO 8859-5 per i caratteri cirillici, ISO 8859-6 per i caratteri arabi e molti altri).
La sequenza originale ASCII resta come sottoinsieme proprio (i primi
128 caratteri) di ciascuno standard ISO8859.
Il problema dello standard ISO8859 è la non univocità
tra sequenze binarie e caratteri. Inoltre anche lo standard a 8
bit non permette la rappresentazione di moltissimi dei simboli
utilizzati nella rappresentazione grafica dei linguaggi naturali e
artificiali utilizzati nel mondo. Basti pensare alla rappresentazione
mediante ideogrammi dei linguaggi delll' estremo oriente.
Per superare queste limitazioni dal 1991 è stato messo
a punto lo standard Unicode
che fornisce (utilizzando fino a 21 bit) la possibilità di
rappresentare fino a un milione di caratteri coprendo così
tutte le possibili necessità esistenti.
Nello standard Unicode, ogni carattere è univocamente associato
ad una codifica binaria. Anche in questo caso, la codifica ASCII
costituisce un sottoinsieme delle codifiche Unicode. Inoltre
la rappresentazione dei caratteri mediante
Unicode non è diretta ma, per ragioni di efficienza, su ciascuna
piattaforma hardware/software, passa per l' utilizzo di
ricodifiche che permettono di utilizzare meno bit per i caratteri usati
più frequentemente. Esempi di tali ricodifiche sono UTF-8, UTF-16 e
UTF-32 che utilizzano gruppi di bit di lunghezza variabile a partire da
gruppi di di 8, 16 e 32 bit (nel caso di UTF32, 11 bit sono inutilizzati e sempre nulli).
UTF-8 (Unicode
Transformation Format, 8 bit) è una ricodifica di Unicode in cui
i caratteri più frequenti sono codificati mediante 8 bit,
includendo la codifica ASCII (non esteso) per i primi 128 caratteri, e quelli meno
frequenti utilizzano un numero maggiore di bit.
La codifica di simboli e caratteri mediante Unicode può essere determinata con tool on-line.