Codici 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.
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 256×256 = 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).
