Eccetto dove diversamente specificato, il contenuto di questo sito è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.
A06_5 La codifica dei caratteri
I computer trattano i dati utilizzando il sistema binario. Tra i dati che un computer deve trattare ci sono i caratteri tipografici che vengono digitati su una tastiera e poi visualizzati su uno schermo, memorizzati su un supporto fisico oppure trasmessi a un altro computer.
A ogni singolo simbolo tipografico deve corrispondere una e una sola particolare sequenza di bit, cioè di cifre 0 e 1.
Per esempio posso decidere di dare al computer le seguenti istruzioni di codifica delle lettere maiuscole:
1 corrisponde alla lettera A
10 corrisponde alla lettera B
11 corrisponde alla lettera C
100 corrisponde alla lettera D
101 corrisponde alla lettera E
110 corrisponde alla lettera F
111 corrisponde alla lettera G
1000 corrisponde alla lettera H
1001 corrisponde alla lettera I
1010 corrisponde alla lettera J
1011 corrisponde alla lettera K
1100 corrisponde alla lettera L
1101 corrisponde alla lettera M
1110 corrisponde alla lettera N
1111 corrisponde alla lettera O
eccetera
Se scrivo "CANE", il computer traduce in:
11 1 1110 101
Il problema è che quando trasferisce o memorizza i dati, il computer non può mettere gli spazi e quindi, se scrivesse il codice della parola "CANE" unendo le codifiche scritte sopra, il risultato sarebbe:
1111110101
Questa scrittura non va bene perché è ambigua.
Se qualcuno andasse a rileggere per fare la decodifica, non potrebbe capire esattamente cosa è stato scritto. Il primo 1 potrebbe significare "A" oppure i primi due 1 potrebbero significare "C" oppure ancora i primi quattro 1 potrebbero significare "O". Questo problema si risolve stabilendo un numero fisso di cifre per ciascun numero del codice, per esempio quattro cifre (codifica a 4 bit):
0001 corrisponde alla lettera A
0010 corrisponde alla lettera B
0011 corrisponde alla lettera C
0100 corrisponde alla lettera D
0101 corrisponde alla lettera E
0110 corrisponde alla lettera F
0111 corrisponde alla lettera G
1000 corrisponde alla lettera H
1001 corrisponde alla lettera I
1010 corrisponde alla lettera J
1011 corrisponde alla lettera K
1100 corrisponde alla lettera L
1101 corrisponde alla lettera M
1110 corrisponde alla lettera N
1111 corrisponde alla lettera O
Con questo codice a larghezza fissa, la parola "CANE", si traduce così:
0011000111100101
Se poi qualcuno andasse a rileggere per fare la decodifica, capirebbe esattamente cosa è stato scritto se sa
che è stata fatta una codifica a 4 bit e quindi sa che deve separare il codice in gruppi di quattro:
0011 0001 1110 0101
C A N E
E se invece volessi scrivere "IL CANE"?
In effetti mi manca un carattere, lo spazio tra l'articolo e il nome! Per fortuna ho ancora un numero libero a quattro bit, il numero 0, e quindi posso decidere che:
0000 corrisponde al carattere "spazio".
Se ora scrivo "IL CANE", il computer traduce in:
1001110000000011000111100101
Se faccio la decodifica, prima separo i gruppi di quattro bit:
1001 1100 0000 0011 0001 1110 0101
I L C A N E
Il numero fisso di cifre binarie (bit) che codifica un carattere, in gergo informatico, è detto word (parola). Con una word di quattro bit si possono codificare 2⁴=16 caratteri.
16 caratteri sono troppo pochi per un alfabeto, infatti con le maiuscole più lo spazio siamo riusciti ad arrivare solo fino alla lettera "O".
Con una word a 8 bit si possono codificare 2⁸=256 caratteri che sono sufficienti a codificare i caratteri di base di una o più lingue europee, quelli che troviamo comunemente su una tastiera come:
Poiché una sequenza di 8 bit è chiamata byte, la codifica a 8 bit è detta anche codifica a 1 byte.
La codifica di caratteri a 8 bit adatta a rappresentare le lingue dell'Europa Occidentale si chiama ISO/IEC 8859-1 ed è stata standardizzata nel 1998.
I caratteri principali per l'uso in lingua italiana della codifica ISO/IEC_8859-1 sono riprodotti nella tabella qui sotto.