Certamente sapete che tenendo premuto il tasto ALT sulla tastiera del PC e digitando una sequenza numerica sul tastierino numerico, è possibile ottenere caratteri speciali. Spesso si tratta di simboli o elementi che risultano del tutto assenti sulle tastiere italiane così come in altri layout ampiamente utilizzati nei vari Paesi. Quello che è meno noto è il motivo per cui determinate sequenze numeriche restituiscano certi caratteri e perché certe combinazioni ALT+… mostrino una volta un simbolo e un’altra volta un altro.
Raymond Chen, ingegnere software con oltre 30 anni di esperienza nello sviluppo di Microsoft Windows, ha pubblicato un interessante articolo sul suo blog spiegando perché ALT+9731
in taluni casi restituisca un cuore e in altri un pupazzo di neve.
Codici dei caratteri, un’invenzione che risale al primo PC IBM
Presentato a ferragosto 1981, l’IBM PC 5150 fu il primo personal computer commercializzato da Big Blue e basato sull’architettura x86. Integrando all’epoca a livello BIOS il supporto per la pressione del tasto ALT seguito dall’inserimento di una sequenza numerica, si permise l’inserimento di caratteri non presenti sulla tastiera.
Oggi come allora, ad esempio, è possibile ottenere le parentesi graffe premendo ALT+123 e ALT+125. La codifica ASCII supporta 126 caratteri ma, utilizzando le versioni estese, oppure la codifica Unicode si possono gestire molti più caratteri.
Chen osserva nel BIOS del PC IBM i numeri fatti seguire alla pressione del tasto ALT erano interpretati come valori byte decimali. Il carattere risultante era frutto della mappa utilizzata dal generatore di caratteri della scheda video. Negli USA, la mappa caratteri era conosciuta come Code Page 437.
Quando arrivò Windows, si utilizzò la cosiddetta Code Page 1252 come set di caratteri a 8 bit, noto come “set di caratteri ANSI” o Windows-1252. La vecchia mappa caratteri del BIOS venne retroattivamente denominata set di caratteri OEM. Per mantenere la compatibilità con MS-DOS, l’uso della combinazione ALT+tastierino numerico continuava a riferirsi alla mappa OEM, permettendo così agli utenti di continuare a utilizzare lo schema noto in precedenza.
Per digitare un carattere che non aveva un equivalente nella mappa OEM, si poteva aggiungere uno zero davanti al numero sul tastierino numerico per indicare l’uso della Code Page ANSI. Per esempio, ALT+0169
produce il simbolo del copyright “©”.
Comportamento per i numeri maggiori di 255
Se si digitava un numero maggiore di 255 dopo la pressione del tasto ALT, sia Windows che il BIOS del PC IBM interpretavano il valore come modulo 256. Così, digitare ALT+259
era ed è tutt’oggi equivalente ad ALT+3
, che produceva il carattere del cuore “♥” in Code Page 437. Con la più moderna e ampia codifica Unicode (UTF-8) è possibile ottenere molti più caratteri speciali.
Chen cita l’emblematico caso di un utente Windows che lamentava un comportamento anomalo del sistema operativo. Prima di uno dei recenti aggiornamenti distribuiti tramite Windows Update, l’utente in questione era abituato a inserire il simbolo del pupazzo di neve digitando ALT+9731
. “Abbiamo spiegato che questa combinazione di tasti non avrebbe mai dovuto produrre un pupazzo di neve“, osserva Chen.
Una più attenta analisi ha rivelato che, sebbene il valore ALT+...
sia gestito di default come modulo 256, alcuni controlli per l’inserimento dei dati (come RichEdit), interpretano il valore modulo 65536 invece che modulo 256. Questo significa che il comportamento della sequenza ALT+...
dipende dal tipo di controllo in cui si sta digitando. Nei vari componenti per l’inserimento del testo, ALT+9731
produce un cuore, poiché 9731 modulo 256 fa 3, che corrisponde al cuore “♥”. In un controllo RichEdit, ALT+9731
produce un pupazzo di neve.