04. Codice ASCII e UNICODE

Fermo restando che i PC e tutti i calcolatori elettronici comunicano e trattano i dati (scrivono, leggono, elaborano) utilizzando il linguaggio binario, prima ci si è posti il problema di come codificare i nostri caratteri alfanumerici (lettere, simboli e numeri).

 
Tale problema fu risolto da Robert W. Bemer, nel 1965, che ideò e propose uno schema di codifica internazionale dei caratteri in informatica, ovvero il processo o il criterio in base al quale lettere, cifre, simboli grafici e codici di controllo vengono tradotti in combinazioni numeriche binarie leggibili da un computer (il concetto della tavola dei caratteri prima espresso).
 
Tale codifica fu chiamata ASCII (American Standard Code for Information Interchange) ovvero Codice Standard Americano per lo Scambio di Informazioni e comprende un set di 256 combinazioni, divise in due sottogruppi di 128 ciascuno, detti rispettivamente standard ed esteso. Il set ASCII standard usa 7 bit per codice e può rappresentare 128 caratteri, numerati da 0 a 127; l'ASCII esteso usa 8 bit per codice e può rappresentare a sua volta 128 caratteri, numerati da 128 a 255.
 
Nel set ASCII standard, i primi 32 codici sono assegnati a caratteri di controllo della comunicazione o della stampante e vengono usati nella trasmissione dati tra computer o tra computer e stampante. I restanti 96 codici sono assegnati ai segni d'interpunzione, alle cifre da 0 a 9 e alle lettere dell'alfabeto latino, maiuscole e minuscole.
 
I codici del set ASCII esteso, dal 128 al 255, consentono di utilizzare l'ottavo bit di ogni carattere per identificare ulteriori 128 caratteri speciali, come le lettere accentate o i caratteri grafici, anche per permettere alle diverse entità linguistiche di inserire le proprie particolarità.
 
Mentre il set ASCII standard è universale sia per il software sia per l'hardware dei computer, i caratteri di un set esteso possono essere interpretati correttamente solo da programmi, computer e stampanti progettati specificatamente per quel set. Le attribuzioni dei primi 128 valori sono stabilite da un codice valido per tutti i computer, mentre i successivi 128 sono lasciati alla definizione del singolo sistema operativo.
 
Per ottenere questa codifica è necessario digitare in un programma (ad es. Word) il tasto ALT con la cifra 0 (zero) e di seguito il codice del carattere. Ad esempio la lettera A maiuscola è rappresentata dal valore 65 (cifra binaria 01000001=1+64), si ottiene con la seguente combinazione di tasti:
 
ALT + 0 (zero) + 65 (tutte le cifre vanno digitate sul tastierino numerico)
 
la e maiuscola accentata (È) si ottiene invece, 
 
ALT + 0 (zero) + 200 (tutte le cifre vanno digitate sul tastierino numerico)

 

UNICODE

La codifica ASCII non è l’unica esistente. Esistono centinaia di sistemi di codifica e ognuno di questi abbina i numeri ai caratteri in modo differente. Ma nessuna di queste codifiche comprende un numero di caratteri sufficiente per tutte le circostanze. Per le sole lingue dell'Unione Europea, ad esempio, è necessario utilizzare parecchi sistemi di codifica distinti. Anche considerando una solo lingua, come l'italiano, non esiste una codifica unica che comprenda tutte le lettere e tutti i segni di punteggiatura e simboli tecnici di uso comune. Si ricorda che una codifica generalmente è composta da un set di 256 caratteri.
 
Questi sistemi di codifica, inoltre, sono in contraddizione l'uno con l'altro. Succede che due codifiche utilizzino lo stesso numero per due caratteri diversi o che, viceversa, adottino numeri diversi per lo stesso carattere. Qualsiasi elaboratore, e a maggior ragione un server di rete, ha bisogno di utilizzare codifiche diverse. Il problema è che, quando i dati passano da una codifica a un'altra, o da una piattaforma a un'altra, si corre il serio rischio di perdere informazioni. Questi sono i problemi per i quali l'unicode è stato ideato.
 
Per risolvere questi problemi, la codifica unicode rappresenta ogni carattere come un numero di 2 byte, da 0 a 65535. Ogni numero di 2 byte rappresenta un unico carattere usato in almeno uno dei linguaggi del mondo. Caratteri che sono usati in molteplici linguaggi hanno lo stesso codice numerico. C'è esattamente 1 numero per carattere ed esattamente un carattere per numero. I dati unicode non sono mai ambigui.
 
Unicode dunque è lo Standard di codifica dei caratteri sviluppato da Unicode Consortium, che utilizzando più di un byte per rappresentare ogni carattere, consente di rappresentare quasi tutte le lingue scritte del mondo con un unico set di caratteri.
 
Utilizzando Word è possibile inserire un carattere UNICODE tenendo premuti i tasti ALT+X e digitando nel tasterino numerico il codice del carattere. Per inserire il simbolo dell’euro € digitare il codice decimale 8364 o esadecimale H20ac.