Contenuto
Che cos'è Unicode?
Unicode rappresenta uno standard di codifica che copre i simboli di quasi tutte le lingue del mondo. Questo standard consente ai computer di elaborare informazioni testuali e di visualizzarle correttamente sullo schermo. Tutte le informazioni in un computer sono memorizzate ed elaborate in formato binario, cioè sotto forma di sequenze di zeri e uno. Per tradurre queste sequenze binarie in simboli comprensibili agli utenti, sono state sviluppate codifiche speciali che stabiliscono le regole secondo cui a ciascun simbolo — che si tratti di una lettera, di un numero o persino di una nota musicale — viene assegnato un codice numerico unico.
Affinché un computer possa visualizzare correttamente i simboli sullo schermo, deve sapere a quale codice binario corrispondono. Ad esempio, la sequenza binaria 0100 0001 corrisponde alla lettera latina A. Tuttavia, il numero di codici possibili è limitato, quindi Unicode funziona secondo un principio diverso. A ciascun simbolo viene assegnato un punto di codice — un valore numerico unico che ha la forma U+XXXX. Il prefisso U+ indica Unicode, mentre XXXX rappresenta il valore esadecimale del simbolo.
Nella sistema esadecimale vengono utilizzati 16 simboli, comprese le cifre da 0 a 9 e le lettere da A a F, che rappresentano i numeri da 10 a 15. Ad esempio, alla lettera inglese A corrisponde il punto di codice U+0041, mentre alla parola HELLO corrispondono i punti di codice U+0048, U+0065, U+006C, U+006C, U+006F. Ogni punto di codice viene poi tradotto in formato binario, comprensibile al computer, e memorizzato nella sua memoria. È interessante notare che anche le emoji sono codificate tramite Unicode.
A cosa serve Unicode?
Inizialmente esistevano codifiche separate per i simboli di ogni lingua, molte delle quali erano incompatibili tra loro. Questo ha portato al problema delle "krakozyabry", quando invece di un testo normale sullo schermo venivano visualizzati simboli o geroglifici strani. Ad esempio, se la ragazza Masha dalla Russia inviava un'e-mail con la parola Привет al suo amico in Armenia, lui poteva ricevere un messaggio come ?????. Il testo originale andava perduto, poiché i computer del mittente e del destinatario supportavano codifiche diverse.
Unicode è stato creato per risolvere questo problema, fornendo un metodo unico per rappresentare i simboli e semplificando il lavoro con il testo a livello multilingue. Con Unicode si può inviare un'e-mail o pubblicare un testo su un sito anche nella lingua Klingon — una lingua artificiale sviluppata dal linguista Marc Okrand per l'universo della serie "Star Trek". I destinatari potranno vederlo nella sua forma originale e leggibile. Ad oggi, Unicode comprende circa 150.000 simboli, sufficienti per coprire quasi tutti i sistemi di scrittura.
Altre codifiche: cosa c'era prima di Unicode
Prima dell'avvento di Unicode esistevano molte diverse codifiche, ognuna delle quali era destinata a una lingua specifica. Le più note sono ASCII, KOI8-R e Windows-1251.
- ASCII: Questa è una tabella di codifica che include 127 simboli, come le lettere latine, i numeri e i segni di punteggiatura. Tuttavia, ASCII non supporta i simboli cirillici e, nel tentativo di codificare un testo in lingua russa, gli utenti ottenevano un insieme di punti interrogativi, perdendo il testo originale.
- KOI8-R: Questa codifica è stata sviluppata per visualizzare simboli non solo dell'alfabeto latino. KOI8-R è compatibile con ASCII e include 256 caratteri, consentendo la visualizzazione del cirillico.
- Windows-1251: Un'altra codifica che supporta il cirillico. Nonostante ciò, i simboli possono essere codificati in modo diverso in diverse codifiche. Ad esempio, il simbolo Г può avere rappresentazioni diverse in KOI8-R e Windows-1251.
Il problema dell'incompatibilità delle diverse codifiche si manifestava quando un testo codificato con una codifica veniva decodificato usando un'altra. Inoltre, c'erano gravi limitazioni nel numero di simboli nelle vecchie codifiche: ASCII aveva 127 simboli, Windows-1251 ne aveva 256. Per molte lingue poco popolari, le codifiche semplicemente non esistevano. Unicode, invece, offre una soluzione universale, includendo tutti i simboli consentiti e le regole per la loro codifica.
