ASCII [1] è l'acronimo di American
Standard Code
for Information
Interchange ed è il
primo standard introdotto nella codifica dei caratteri di scrittura nel campo dell'IT (Information Techology).
Il codice ASCII è
definito nella norma ISO/IEC 646 - Information
technology - ISO 7-bit coded character set for information
interchange [2].
Nel
codice ASCII i
caratteri sono codificati con 7 bit cosa che permette di codificare
27
= 128 caratteri numerati da 0 a 127. I concetti alla base dello standard sono semplici e pratici:
→ codificare i caratteri di controllo ovvero i comandi necessari per poter gestire da remoto una stampante (originariamente una telescrivente);
→ codificare i caratteri stampabili - lettere, numeri, segni di interpunzione e simboli - di impiego più frequente nella scrittura di un testo.
I
caratteri da 0 a 31 sono caratteri di controllo e non sono
stampabili. Il carattere 32 corrisponde a uno spazio. I caratteri da
33 a 126 sono caratteri stampabili. Il carattere 127 corrisponde a
Delete (ed è equivalente a
Backspace).
Questo
è il set di caratteri ASCII standard altrimenti noto come set di caratteri
ASCII di base:
Codice | Simbolo | Codice | Carattere | Codice | Carattere | Codice | Carattere |
0 | NUL | 32 | 64 | @ | 96 | ` | |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | ' | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | TAB | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DC1 | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | ETB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | \ | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | _ | 127 | |
Questa
è la versione sintetica della tabella precedente, con i soli caratteri ASCII
di base stampabili:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Di fatto il set di caratteri ASCII di base riflette il modo in cui i caratteri sono scritti su (e possono essere riletti da) un foglio di carta scritto con una macchina da scrivere, impiegando un set di caratteri/codice universalmente riconosciuto. Non solo: della macchina da scrivere il codice ASCII conserva, ad esempio, il comando LF (Line Feed) che fa avanzare il foglio alla riga successiva, e il comando CR (Carriage Return) che riporta il carrello della macchina da scrivere (virtuale) all'inizio della riga. Anche se la macchina da scrivere è stato oramai da decenni sostituita da PC, word processor e stampante, è da questa che sono derivati i concetti e questo standard minimo di base.
Gli
altri set di caratteri che vediamo ora hanno progressivamente esteso
il set di caratteri ASCII di base con set di caratteri
aggiuntivi, con l'obiettivo di includere tutti i caratteri di tutte
le lingue (cosa inimmaginabile via hardware, con un dispositivo meccanico come la macchina da scrivere, ma senza sostanziali problemi via software).
Il primo nato allo scopo di estendere il set di caratteri ASCII di base è stato il set di caratteri ANSI
(acronimo di American National Standard
Institute) nel quale i caratteri sono
codificati con 8 bit cosa che permette di codificare 28 =
256 caratteri numerati da 0 a 255. Il set di caratteri ANSI
include il set di caratteri ASCII di base (caratteri numerati
da 0 a 127) più il set di caratteri denominato ASCII esteso
(caratteri numerati da 128 a 255). Purtroppo per i caratteri da 128 a
255 non si è stabilito subito un accordo e questo ha determinato
la presenza di differenze tra il set di caratteri a 8 bit Windows
1252 (che viene denominato impropriamente ANSI e che è ampiamente utilizzato) e il set di caratteri
ISO-8859-1 anch'esso a 8 bit (i due infatti codificano in modo differente i caratteri da 128 a 159).
Dato il numero elevato di caratteri da codificare (si pensi ad esempio al cirillico, al greco, all'aramaico, all'ebraico e al numero di ideogrammi necessari per codificare i testi in Cinese, Giapponese e Coreano) e data
la vitale importanza di una codifica univoca dei caratteri, è nato quindi Unicode, un consorzio no-profit privato al quale partecipano
tutte le principali aziende di informatica, con lo scopo di assegnare
ad ogni carattere impiegato per la scrittura un numero univoco
indipendente dalla lingua, dalla piattaforma informatica e dal
software impiegati [3].
Gli standard Unicode sono identificati dalla sigla UTF (Unicode Transformation
Format) seguita da un numero progressivo di versione. Dal 1991 il Consorzio Unicode ha
sviluppato gli standard in parallelo con la norma ISO/IEC 10646 che
definisce l'Universal Coded Character Set
(UCS). Entrambi hanno lo stesso repertorio di caratteri, con
gli stessi numeri: fortunatamente, e saggiamente, Unicode e ISO hanno deciso di normare congiuntamente in modo identico questo aspetto di base e così delicato della comunicazione.
Di fatto Unicode è oggi il riferimento ufficiale - per definizione in linea con la normativa ISO - per la codifica standard dei caratteri, che include gli storici set di caratteri
→ codice
ASCII di base - Basic Latin [4]
→ codice
ASCII esteso - Latin-1 Supplement [5]
accanto agli altri numerosissimi set di caratteri che nel frattempo sono stati sviluppati, e continuano ad essere aggiornati, per coprire
tutte le lingue del mondo [6] .
Attualmente
il più estesamente impiegato è lo standard UTF-8: alla data di pubblicazione di questo post la maggior parte delle pagine web sono
realizzate impiegando la codifica dei caratteri prevista da questo standard.
----------
[1] In inglese si pronuncia æski (æ come in fat, s come in sorry, k come in car, i come in happy), ma in italiano viene pronunciato aschi o anche asci.
[2]
ISO/IEC 646. URL consultato il 29/09/2023:
https://goo.gl/hAuERi
[3]
The Unicode Consortium. URL consultato il 29/09/2023: https://home.unicode.org/
[4] C0 Controls and Basic Latin. URL
consultato il 29/09/2023: https://goo.gl/GJHqfW
[5] C1 Controls and Latin-1 Supplement. URL
consultato il 29/09/2023: https://goo.gl/cfhgLd
[6]
Unicode Character Code Charts. URL
consultato il 29/09/2023: https://goo.gl/rsFsgv
Nessun commento:
Posta un commento