ASCII, progettato negli anni ’60 per standardizzare la comunicazione elettronica,  sta per “American Standard Code for Information Interchange” (Codice Standard americano per lo scambio di informazioni).

Si tratta di alcuni simboli per rappresentare testi in computer codificando l’alfabeto inglese, numeri, simboli di punteggiatura e alcuni comandi di controllo utilizzati nei dispositivi di comunicazione. È la mappatura di caratteri univoci a numeri da 0 a 255 (quindi sono sufficienti 8 bit).

Per esempio, come vedrai nelle tabelle ASCII tra poco, la lettera “A” maiuscola è rappresentata dal numero 65, mentre la lettera “a” minuscola è rappresentata dal numero 97.

Quanti sono i simboli ASCII? Il numero totale può arrivare a 256 e si possono suddividere in questo modo:

  • caratteri di controllo (valori da 0 a 31);
  • caratteri stampabili (valori da 32 a 127);
  • caratteri estesi (valori da 128 a 255).

Caratteri di controllo (valori da 0 a 31)

I simboli della tabella ASCII che vanno dai valori 0 a 31 rappresentano i caratteri di controllo, ovvero sono una serie di codici non stampabili (non corrispondono a simboli grafici o lettere che possono essere visualizzati su uno schermo) che hanno scopi speciali per la gestione del testo e delle periferiche. Infatti, originariamente sono stati pensati per il controllo di hardware come stampanti e terminali di testo.

Nome Carattere Valore Decimale Valore Binario Descrizione
NUL 0 00000000 Null char, usato come marcatura di fine stringa.
SOH 1 00000001 Start of Header, inizia un’intestazione di messaggio.
STX 2 00000010 Start of Text, indica l’inizio del testo di un messaggio.
ETX 3 00000011 End of Text, segnala la fine del testo di un messaggio.
EOT 4 00000100 End of Transmission, termina la trasmissione di dati.
ENQ 5 00000101 Enquiry, richiede una risposta da un dispositivo remoto.
ACK 6 00000110 Acknowledge, conferma la ricezione di un messaggio.
BEL 7 00000111 Bell, emette un suono o un segnale visivo.
BS 8 00001000 Backspace, sposta indietro il cursore di una posizione.
TAB 9 00001001 Horizontal Tab, muove il cursore alla successiva posizione di tabulazione orizzontale.
LF 10 00001010 Line Feed, muove il cursore alla linea successiva.
VT 11 00001011 Vertical Tab, muove il cursore alla successiva posizione di tabulazione verticale.
FF 12 00001100 Form Feed, fa avanzare il foglio alla prossima pagina sulla stampante.
CR 13 00001101 Carriage Return, muove il cursore all’inizio della linea.
SO 14 00001110 Shift Out / X-On, attiva un set alternativo di caratteri.
SI 15 00001111 Shift In / X-Off, ritorna al set di caratteri principale.
DLE 16 00010000 Data Link Escape, segnala un controllo di trasmissione speciale.
DC1 17 00010001 Device Control 1 (XON), riprende la trasmissione.
DC2 18 00010010 Device Control 2, controllo dispositivo senza una funzione specifica.
DC3 19 00010011 Device Control 3 (XOFF), sospende la trasmissione.
DC4 20 00010100 Device Control 4, controllo dispositivo senza una funzione specifica.
NAK 21 00010101 Negative Acknowledge, indica che la trasmissione è stata ricevuta con errore.
SYN 22 00010110 Synchronous Idle, utilizzato per mantenere la sincronizzazione nelle trasmissioni.
ETB 23 00010111 End of Transmission Block, segnala la fine di un blocco di trasmissione.
CAN 24 00011000 Cancel, annulla il messaggio o il comando corrente.
EM 25 00011001 End of Medium, segnala la fine del supporto dati.
SUB 26 00011010 Substitute, sostituisce un carattere errato o illeggibile.
ESC 27 00011011 Escape, introduce sequenze di comandi per dispositivi.
FS 28 00011100 File Separator, utilizzato come separatore di file.
GS 29 00011101 Group Separator, utilizzato come separatore di gruppi di file.
RS 30 00011110 Record Separator, utilizzato come separatore di record.
US 31 00011111 Unit Separator, utilizzato come separatore di unità.

Caratteri stampabili (valori da 32 a 127)

Questi caratteri rientrano nel range di valori da 32 a 127. Comprendono una vasta gamma di simboli che sono visualizzabili su schermo, includono le lettere dell’alfabeto latino sia in maiuscolo che in minuscolo, i numeri da 0 a 9, la punteggiatura di base, e una selezione di simboli grafici e matematici.

Nome Carattere Valore Decimale Valore Binario Descrizione
Space 32 00100000 Spazio, usato come separatore.
! 33 00100001 Punto esclamativo, indica enfasi.
34 00100010 Virgolette, delimita testo diretto.
# 35 00100011 Cancelletto, usato nei social media.
$ 36 00100100 Simbolo del dollaro, indica valuta.
% 37 00100101 Percentuale, indica una proporzione.
& 38 00100110 E commerciale, “e” congiuntivo.
39 00100111 Apostrofo, indica possesso o elisione.
( 40 00101000 Parentesi aperta, segnala l’inizio di un gruppo.
) 41 00101001 Parentesi chiusa, segnala la fine di un gruppo.
* 42 00101010 Asterisco, usato per la moltiplicazione o come jolly.
+ 43 00101011 Segno più, usato per indicare l’addizione o il positivo.
, 44 00101100 Virgola, usata per separare elementi in una lista.
45 00101101 Trattino o segno meno, usato per la sottrazione o per indicare un intervallo.
. 46 00101110 Punto, usato per terminare le frasi o per separare la parte intera da quella decimale in numeri.
/ 47 00101111 Barra, usata per la divisione o in percorsi di file e URL.
0 48 00110000 Cifra zero.
1 49 00110001 Cifra uno.
2 50 00110010 Cifra due.
3 51 00110011 Cifra tre.
4 52 00110100 Cifra quattro.
5 53 00110101 Cifra cinque.
6 54 00110110 Cifra sei.
7 55 00110111 Cifra sette.
8 56 00111000 Cifra otto.
9 57 00111001 Cifra nove.
: 58 00111010 Due punti, usati per denotare il rapporto o come separatore di tempo.
; 59 00111011 Punto e virgola, usato per separare elementi in un elenco o istruzioni in linguaggi di programmazione.
< 60 00111100 Minore di, usato in matematica e in linguaggi di programmazione.
= 61 00111101 Uguale a, usato per indicare equivalenza.
> 62 00111110 Maggiore di, usato in matematica e in linguaggi di programmazione.
? 63 00111111 Punto interrogativo, indica una domanda.
@ 64 01000000 Chiocciola, usato negli indirizzi email.
A 65 01000001 Prima lettera dell’alfabeto latino.
B 66 01000010 Seconda lettera dell’alfabeto latino.
C 67 01000011 Terza lettera dell’alfabeto latino.
D 68 01000100 Quarta lettera dell’alfabeto latino.
E 69 01000101 Quinta lettera dell’alfabeto latino.
F 70 01000110 Sesta lettera dell’alfabeto latino.
G 71 01000111 Settima lettera dell’alfabeto latino.
H 72 01001000 Ottava lettera dell’alfabeto latino.
I 73 01001001 Nona lettera dell’alfabeto latino.
J 74 01001010 Decima lettera dell’alfabeto latino.
K 75 01001011 Undicesima lettera dell’alfabeto latino.
L 76 01001100 Dodicesima lettera dell’alfabeto latino.
M 77 01001101 Tredicesima lettera dell’alfabeto latino.
N 78 01001110 Quattordicesima lettera dell’alfabeto latino.
O 79 01001111 Quindicesima lettera dell’alfabeto latino.
P 80 01010000 Sedicesima lettera dell’alfabeto latino.
Q 81 01010001 Diciassettesima lettera dell’alfabeto latino.
R 82 01010010 Diciottesima lettera dell’alfabeto latino.
S 83 01010011 Diciannovesima lettera dell’alfabeto latino.
T 84 01010100 Ventesima lettera dell’alfabeto latino.
U 85 01010101 Ventesima prima lettera dell’alfabeto latino.
V 86 01010110 Ventesima seconda lettera dell’alfabeto latino.
W 87 01010111 Ventesima terza lettera dell’alfabeto latino.
X 88 01011000 Ventesima quarta lettera dell’alfabeto latino.
Y 89 01011001 Ventesima quinta lettera dell’alfabeto latino.
Z 90 01011010 Ventesima sesta lettera dell’alfabeto latino.
[ 91 01011011 Parentesi quadra aperta, usata in molti linguaggi di programmazione.
\ 92 01011100 Barra inversa, usata come carattere di escape in stringhe e percorsi.
] 93 01011101 Parentesi quadra chiusa, usata in molti linguaggi di programmazione.
^ 94 01011110 Circonferenza, usata per indicare l’elevazione a potenza o come operatore bitwise XOR.
_ 95 01011111 Trattino basso, usato per separare parole in identificatori di programmazione.
` 96 01100000 Accent grave, usato in alcuni linguaggi di programmazione o per caratteri accentati.
a 97 01100001 Prima lettera dell’alfabeto latino in minuscolo.
b 98 01100010 Seconda lettera dell’alfabeto latino in minuscolo.
c 99 01100011 Terza lettera dell’alfabeto latino in minuscolo.
d 100 01100100 Quarta lettera dell’alfabeto latino in minuscolo.
e 101 01100101 Quinta lettera dell’alfabeto latino in minuscolo.
f 102 01100110 Sesta lettera dell’alfabeto latino in minuscolo.
g 103 01100111 Settima lettera dell’alfabeto latino in minuscolo.
h 104 01101000 Ottava lettera dell’alfabeto latino in minuscolo.
i 105 01101001 Nona lettera dell’alfabeto latino in minuscolo.
j 106 01101010 Decima lettera dell’alfabeto latino in minuscolo.
k 107 01101011 Undicesima lettera dell’alfabeto latino in minuscolo.
l 108 01101100 Dodicesima lettera dell’alfabeto latino in minuscolo.
m 109 01101101 Tredicesima lettera dell’alfabeto latino in minuscolo.
n 110 01101110 Quattordicesima lettera dell’alfabeto latino in minuscolo.
o 111 01101111 Quindicesima lettera dell’alfabeto latino in minuscolo.
p 112 01110000 Sedicesima lettera dell’alfabeto latino in minuscolo.
q 113 01110001 Diciassettesima lettera dell’alfabeto latino in minuscolo.
r 114 01110010 Diciottesima lettera dell’alfabeto latino in minuscolo.
s 115 01110011 Diciannovesima lettera dell’alfabeto latino in minuscolo.
t 116 01110100 Ventesima lettera dell’alfabeto latino in minuscolo.
u 117 01110101 Ventesima prima lettera dell’alfabeto latino in minuscolo.
v 118 01110110 Ventesima seconda lettera dell’alfabeto latino in minuscolo.
w 119 01110111 Ventesima terza lettera dell’alfabeto latino in minuscolo.
x 120 01111000 Ventesima quarta lettera dell’alfabeto latino in minuscolo.
y 121 01111001 Ventesima quinta lettera dell’alfabeto latino in minuscolo.
z 122 01111010 Ventesima sesta lettera dell’alfabeto latino in minuscolo.
{ 123 01111011 Graffa aperta, usata in molti linguaggi di programmazione.
| 124 01111100 Barra verticale, usata come operatore logico OR o come separatore.
} 125 01111101 Graffa chiusa, usata in molti linguaggi di programmazione.
~ 126 01111110 Tilde, usato per indicare l’operazione di negazione bit a bit o come indicatore di home directory in Unix/Linux.
DEL 127 01111111 Carattere di cancellazione, usato per indicare l’eliminazione o la cancellazione di un carattere o di un comando.

Caratteri estesi (valori da 127 a 255)

La tavola dei valori ASCII originale era formata da soli 128 valori (da 0 a 127). Con il passare degli anni però ci si è reso conto che questi simboli non erano sufficienti, quindi sono state introdotte nuove codifiche.

L’ASCII esteso include caratteri per supportare lingue europee con accenti e segni diacritici, come le vocali accentate, la “ñ” spagnola, e la “ç” del francese. Inoltre, introduce simboli aggiuntivi come quelli matematici, grafici e vari tipi di virgolette, ampliando significativamente le possibilità di comunicazione testuale e la creazione di interfacce utente testuali più ricche.

Devi sapere che a partire dall’ASCII originale (quello formato solo da 128 valori) sono state generate tante altre estensioni. Una delle più antiche e utilizzate è sicuramente la versione ISO 8859-1 (Latin-1) introdotta per supportare le lingue occidentali.

Nome Carattere Valore Decimale Valore Binario Descrizione
Ç 128 10000000 Maiuscolo C cediglia.
ü 129 10000001 Minuscolo u dieresi.
é 130 10000010 Minuscolo e accento acuto.
â 131 10000011 Minuscolo a circonflesso.
ä 132 10000100 Minuscolo a dieresi.
à 133 10000101 Minuscolo a grave.
å 134 10000110 Minuscolo a cerchio sopra.
ç 135 10000111 Minuscolo c cediglia.
ê 136 10001000 Minuscolo e circonflesso.
ë 137 10001001 Minuscolo e dieresi.
è 138 10001010 Minuscolo e grave.
ï 139 10001011 Minuscolo i dieresi.
î 140 10001100 Minuscolo i circonflesso.
ì 141 10001101 Minuscolo i grave.
Ä 142 10001110 Maiuscolo A dieresi.
Å 143 10001111 Maiuscolo A cerchio sopra.
É 144 10010000 Maiuscolo E accento acuto.
æ 145 10010001 Minuscolo ae.
Æ 146 10010010 Maiuscolo AE.
ô 147 10010011 Minuscolo o circonflesso.
ö 148 10010100 Minuscolo o dieresi.
Ö 149 10010101 Maiuscolo O dieresi.
ò 150 10010110 Minuscolo o grave.
û 151 10010111 Minuscolo u circonflesso.
Û 152 10011000 Maiuscolo U circonflesso.
ù 153 10011001 Minuscolo u grave.
Ù 154 10011010 Maiuscolo U grave.
ÿ 155 10011011 Minuscolo y dieresi.
Ÿ 156 10011100 Maiuscolo Y dieresi.
´ 157 10011101 Accento acuto.
À 158 10011110 Maiuscolo A grave.
à 159 10011111 Minuscolo a grave.
160 10100000 Spazio non separabile.
á 161 10100001 Minuscolo a accento acuto.
í 162 10100010 Minuscolo i accento acuto.
ó 163 10100011 Minuscolo o accento acuto.
ú 164 10100100 Minuscolo u accento acuto.
ñ 165 10100101 Minuscolo n tilde.
Ñ 166 10100110 Maiuscolo N tilde.
ª 167 10100111 Indicatore di genere femminile.
º 168 10101000 Indicatore di genere maschile.
¿ 169 10101001 Punto interrogativo invertito.
170 10101010 Negazione logica.
¬ 171 10101011 Not logico.
½ 172 10101100 Un mezzo.
¼ 173 10101101 Un quarto.
¡ 174 10101110 Punto esclamativo invertito.
« 175 10101111 Virgolette angolari aperte.
» 176 10110000 Virgolette angolari chiuse.
177 10110001 Trama leggera.
178 10110010 Trama media.
179 10110011 Trama pesante.
180 10110100 Linea verticale.
181 10110101 Linea verticale con braccio destro.
Á 182 10110110 Maiuscolo A accento acuto.
 183 10110111 Maiuscolo A circonflesso.
À 184 10111000 Maiuscolo A grave.
© 185 10111001 Simbolo di copyright.
186 10111010 Linea verticale doppia con braccio destro.
187 10111011 Linea verticale doppia.
188 10111100 Angolo in alto a destra doppio.
189 10111101 Angolo in basso a destra doppio.
¢ 190 10111110 Simbolo di centesimo.
¥ 191 10111111 Simbolo di yen.
192 11000000 Angolo in alto a destra.
193 11000001 Angolo in basso a sinistra.
194 11000010 T congiunzione in basso.
195 11000011 T congiunzione in alto.
196 11000100 T congiunzione a sinistra.
197 11000101 Linea orizzontale.
198 11000110 Croce di congiunzione.
ã 199 11000111 Minuscolo a tilde.
Ä 200 11001000 Maiuscolo A dieresi.
Å 201 11001001 Maiuscolo A cerchio sopra.
É 202 11001010 Maiuscolo E accento acuto.
æ 203 11001011 Minuscolo ae.
Æ 204 11001100 Maiuscolo AE.
ô 205 11001101 Minuscolo o circonflesso.
ö 206 11001110 Minuscolo o dieresi.
ò 207 11001111 Minuscolo o grave.
û 208 11010000 Minuscolo u circonflesso.
ù 209 11010001 Minuscolo u grave.
ÿ 210 11010010 Minuscolo y dieresi.
Ö 211 11010011 Maiuscolo O dieresi.
Ü 212 11010100 Maiuscolo U dieresi.
¢ 213 11010101 Simbolo di centesimo.
£ 214 11010110 Simbolo di sterlina.
¥ 215 11010111 Simbolo di yen.
216 11011000 Simbolo di peseta.
ƒ 217 11011001 Simbolo di fiorino.
á 218 11011010 Minuscolo a accento acuto.
í 219 11011011 Minuscolo i accento acuto.
ó 220 11011100 Minuscolo o accento acuto.
ú 221 11011101 Minuscolo u accento acuto.
ñ 222 11011110 Minuscolo n tilde.
Ñ 223 11011111 Maiuscolo N tilde.
ª 224 11100000 Indicatore ordinale femminile.
º 225 11100001 Indicatore ordinale maschile.
¿ 226 11100010 Punto interrogativo invertito.
227 11100011 Negazione logica.
¬ 228 11100100 Not logico.
½ 229 11100101 Frazione un mezzo.
¼ 230 11100110 Frazione un quarto.
¡ 231 11100111 Punto esclamativo invertito.
« 232 11101000 Virgolette angolari aperte.
» 233 11101001 Virgolette angolari chiuse.
234 11101010 Trama leggera.
235 11101011 Trama media.
236 11101100 Trama pesante.
237 11101101 Linea verticale singola.
238 11101110 Linea verticale con braccio destro.
Á 239 11101111 Maiuscolo A accento acuto.
 240 11110000 Maiuscolo A circonflesso.
À 241 11110001 Maiuscolo A grave.
© 242 11110010 Simbolo di copyright.
243 11110011 Linea verticale doppia con braccio destro.
244 11110100 Linea verticale doppia.
245 11110101 Angolo in alto a destra doppio.
246 11110110 Angolo in basso a destra doppio.
¢ 247 11110111 Simbolo di centesimo.
¥ 248 11111000 Simbolo di yen.
249 11111001 Angolo in alto a destra.
250 11111010 Angolo in basso a sinistra.
251 11111011 T congiunzione in basso.
252 11111100 T congiunzione in alto.
253 11111101 T congiunzione a sinistra.
254 11111110 Linea orizzontale.
255 11111111 Croce di congiunzione.

Quali sono i limiti della codifica ASCII

Anche se l’ASCII standard è stato esteso a 256 caratteri, rimane insufficiente per rappresentare le lingue che utilizzano altri alfabeti o caratteri speciali. Inoltre, non può rappresentare lingue che usano alfabeti diversi da quello latino, come il cinese, il giapponese, l’arabo, il cirillico, e molti altri. Questo limita gravemente l’uso dell’ASCII in contesti internazionali e multilingue.

Le varie estensioni dell’ASCII standard hanno provato a mettere una pezza al limite dei 128 caratteri ma allo stesso tempo hanno introdotto nuovi disagi, come la non uniformità delle estensioni che variano in base alla lingua, causando problemi di compatibilità. È un grosso problema codificare e decodificare dei testi scambiati tra sistemi che utilizzano codifiche diverse.

Per sopperire ai problemi dell’ASCII è stata creata la codifica Unicode, dal nome stesso potrai intuire che questo sistema associa un codice univoco ad ogni carattere, includendo tutti i sistemi di scrittura esistenti. Infatti, supporta oltre 143.000 caratteri coprendo 154 moderni e storici sistemi di scrittura, inclusi molti simboli matematici e musicali.

Categorie: Informatica