Introduzione alla codifica dei caratteri


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.