06. Codifica di caratteri

La codifica ASCII

La codifica ASCII è stata definita dall'ente di standardizzazione americano ANSI nel 1968 e successivamente accettata anche dall'ente di standardizzazione mondiale ISO (standard ISO/IEC 646).

E' una codifica dei caratteri a 7 bit comunemente utilizzata nei calcolatori.

Un carattere codificato in ASCII è memorizzato in un byte (l'ottavo bit del byte, il più significativo, è posto a zero).

Partendo dall'osservazione che il numero più grande che si può rappresentare con 7 bit è 1111111(2) = 127(10), va da sé che con questa codifica si possono rappresentare 128 caratteri (occorre considerare anche il carattere associato al numero 0).

La seguente tabella, detta tabella ASCII, mostra la corrispondenza tra la codifica numerica (espressa nelle basi decimale ed esadecimale) e la rappresentazione a caratteri.

Notare che non tutti i caratteri sono stampabili, infatti i primi 32 caratteri hanno un significato particolare (nella colonna CHAR è riportata la sigla di riferimento), così come l'ultimo carattere della tabella.

Tabella ASCII

Il seguente elenco specifica il significato associato ad alcuni dei caratteri non stampabili.

Esiste una codifica ASCII estesa che prevede l'uso di 8 bit invece che di 7 (standard ISO/IEC 8859). Questa codifica estesa introduce ulteriori 128 caratteri associati ai numeri che vanno da 128(10) a 255(10). La corrispondenza tra codifica numerica e carattere anche in questo caso è ottenuta tramite una tabella, la tabella ASCII estesa.

Per la precisione di tabelle ASCII estese ne esistono più d'una ed ogni nazione adotta quella più coerente con il proprio alfabeto.

La tabella ASCII estesa utilizzata in Italia è quella dell'Europa occidentale, creata per le lingue germaniche e neolatine, escluso il rumeno (standard ISO/IEC 8859-1, anche detto ISO Latin-1).

In questa tabelle, per esempio, trovano spazio le vocali accentate (à, é, è, ì, ò, ù) che erano escluse dalla tabella ASCII standard.

Tabella ASCII estesa


Purtroppo in un contesto come quello attuale, nel quale sempre più spesso si ha l'esigenza di utilizzare una codifica internazionale adatta contemporaneamente a più lingue, la codifica ASCII ha mostrato i suoi limiti e sta lasciando il posto allo standard Unicode.

La codifica Unicode

Unicode è un sistema di codifica che assegna un numero univoco ad ogni carattere usato per la scrittura di testi, in maniera indipendente dalla lingua, dalla piattaforma informatica e dal programma utilizzato. Tale codifica riguarda ad esempio i caratteri arabi (ש), le nostre classiche lettere latine (a, b, c), i caratteri russi (cirillico: Й), i caratteri greci (Σ) ecc..

La codifica Unicode è gestita dall'Unicode Consortium, un consorzio internazionale di aziende interessate alla interoperabilità nel trattamento informatico dei testi in lingue diverse.

Sono implementate diverse codifiche per i caratteri inclusi in Unicode. Le principali e più diffuse sono:

    • UTF-8:

      • Codifica esclusivamente i caratteri Unicode Standard (un sottoinsieme dei caratteri gestiti da Unicode);

      • I caratteri inclusi nella codifica ASCII ristretta mantengono la stessa codifica in UTF-8 (e quindi occupano un solo byte anche nella codifica UTF-8) ;

      • Codifica i caratteri con un numero variabile di byte (da 1 a 4);

      • E' la codifica raccomandata per il web e per la corrispondenza via e-mail.

    • UTF-16:

      • Codifica tutti i caratteri Unicode;

      • Codifica i caratteri con 2 o 4 byte;

      • E' implementata nei principali sistemi operativi e ambienti di programmazione (Windows, Python, Java, .NET).