Il codice ASCII
La tabella ASCII è un
codice convenzionale usato per la
rappresentazione dei caratteri di testo
attraverso i byte: ad ogni byte viene
fatto corrispondere un diverso carattere della tastiera (lettere, numeri,
segni).
In
realtà lo standard ASCII copre solo i primi 128 byte (da 00000000 a 01111111), i
successivi byte fino al 256° costituiscono la tabella ASCII estesa che
presenta varie versioni a carattere nazionale.
Nella
tabella Ascii standard si trovano le
cifre numeriche, le lettere
maiuscole e minuscole (maiuscole e minuscole hanno codici ASCII differenti) la
punteggiatura, i simboli aritmetici e altri simboli ($, &, %, @, #, ecc.).
Essendo stata concepita in America, la tabella ASCII standard non comprende le
lettere accentate (sconosciute all'ortografia inglese).
I primi 32 byte della tabella standard sono inoltre riservati per segnali di
controllo e funzioni varie.
L'alfabeto
latino, usato nella scrittura di molte lingue nel mondo, presenta una grande
quantità di varianti grafiche: si va dalle semplici vocali accentate (accento
grave à, acuto á, circonflesso â, dieresi ä, tilde
ã) a lettere modificate (lettere con barrette, cediglie, segni), lettere
speciali usate solo in una lingua, segni di punteggiatura particolari (il punto
interrogativo ed il punto esclamativo capovolti usati nello spagnolo), simboli
di valuta, e così via, senza considerare poi che gran parte di questi segni
presentano le due forme maiuscola e minuscola.
Le varianti sono talmente numerose che i 128 byte della tabella estesa non sono
purtroppo sufficienti a rappresentarle tutte, per questo motivo esistono diverse
estensioni della tabella ASCII: lo standard ISO 8859 prevede 15 diverse
estensioni, comprese quelle per gli alfabeti diversi dal latino, ma esistono
anche ulteriori estensioni non riconosciute dall'ISO e create per esempio dalla
Microsoft per i sistemi Windows o dalla Apple per i Macintosh. Persino l'MS-DOS
usava un'estensione diversa da quella di Windows.
La tabella ASCII estesa tipicamente utilizzata in Italia è quella dell'Europa occidentale, creata per le lingue
germaniche e neolatine (escluso il rumeno). Altre estensioni usate in Europa
sono la Centro Europea per i paesi dell'Europa orientale (lingue slave,
ungherese, rumeno), la Turca, la Cirillica e la Greca.
Questa coesistenza fra diverse versioni del codice ASCII produce spesso
discordanze nella visualizzazione dei file di testo. Sarà capitato a molti di
aprire un file di testo o ricevere una E-mail e trovare segni assurdi al posto
di tutte le lettere accentate, questo perché chi l'ha scritto stava usando una
tabella estesa diversa dalla vostra e quindi il vostro computer interpreta
alcuni byte del file in modo diverso.
Certi tipi di file, come i file html, possono contenere al loro interno il nome
esplicito dell'estensione ASCII usata per la loro creazione, così il computer
ricevente saprà come regolarsi.
Per
cercare di ovviare al problema è stato creato un nuovo standard internazionale
detto Unicode, definito dalla Unicode Consortium e dalla International
Organization for Standardization (ISO 10646), che rappresenta i caratteri usando
2 byte (16 bit).
Con 2 byte il numero di combinazioni possibili diventa 256x256 = 65.536, perciò
Unicode supporta 65.536 diversi segni, al posto dei 256 del set ASCII. Si
riescono così a rappresentare non solo tutte le varianti dell'alfabeto latino,
ma anche tutti gli altri alfabeti (greco, cirillico, arabo, ebraico, hindi, thai,
...) oltre all'insieme degli ideogrammi cinesi e giapponesi (che sono in tutto
circa 30.000, anche se poi ne vengono effettivamente utilizzati solo poche
migliaia). Lo standard definitivo è ancora in corso di definizione, ma i codici
disponibili sono così numerosi, che pare verranno inseriti in Unicode persino
gli alfabeti di fantasia come l'Elfico di Tolkien o il Klingon di Star Trek.
Lo svantaggio dell'Unicode, rispetto all'ASCII, è che le dimensioni dei file di
testo risultano comunque raddoppiate (vengono usati 2 byte per carattere, invece
di 1 solo).