L'Unicode è uno standard dell'industria informatica creato per la codifica, la rappresentazione e la gestione del testo nella gran parte dei sistemi di scrittura oggi conosciuti. Sviluppato in contemporanea con l'Universal Character Set (set di caratteri universali) e pubblicato sotto forma di libro (dal titolo “The Unicode Standard”), l'ultima versione di questo sistema di gestione informatica contiene più di 110.000 caratteri appartenenti a oltre 100 alfabeti e sistemi di scrittura (chiamati, nel gergo dello standard, set).
Lo standard – arrivato alla sua settima release principale – si compone di grafici dei caratteri per la “comparazione visiva”, di un metodo di codifica, di un set di codifiche per i caratteri standard e un numero di elementi e caratteristiche correlate come le proprietà del carattere, regole per la normalizzazione del carattere, decomposizione, rendering e regole per la visualizzazione bidirezionale del testo (per la corretta visualizzazione di testo contenente sia elementi di alfabeti scritti da destra a sinistra – come l'arabo – sia elementi di alfabeti scritti da sinistra a destra – banalmente, il latino). Lo standard è ormai ampiamente utilizzato in tutto l'universo informatico, tanto da essere implementato e utilizzato nei sistemi operativi, nello XML, nel linguaggio di programmazione Java e nel .NET framework di Microsoft.
Origini e fini
L’Unicode ha lo scopo di superare i limiti della tradizionale codifica dei caratteri, che aveva portato, nel tempo, alla formazione di diversi standard incompatibili tra loro. Un esempio chiaro di questa tendenza è rappresentato dall'ISO 8859 che, pur essendo utilizzato in diversi Paesi e con diversi sistemi di scrittura, era tuttavia incompatibile con moltissimi altri alfabeti. La più grande mancanza degli standard di codifica di questo genere era rappresentata dalla loro “binarietà”: solitamente permettevano la codifica dei caratteri dell'alfabeto locale e di quello latino (una sorta di “alfabeto franco” dell'informatica), ignorando la codificazione di tutte le altre tipologie di simboli e grafemi alfabetici.
L’Unicode prova a risolvere questo problema con un cambiamento di paradigma. Anziché codificare il glifo, basa la propria codifica sull'unità carattere-grafema, assegnando a ogni unità così individuata un numero. Nella codifica e decodifica dei caratteri, l'Unicode non si occupa di effettuare il rendering del singolo glifo ma fornisce un codice univoco – il numero assegnato all'unità – al programma che ne fa richiesta. Sarà poi compito del programma stesso “ricercare” il carattere corrispondente al numero così ottenuto e rappresentarlo graficamente.
La storia dello standard
L'Unicode nasce nel 1987 su iniziativa di Joe Becker di Xerox e Lee Collins e Mark Davis di Apple. L'obiettivo del trio è studiare la fattibilità di un sistema di codifica del testo che fosse universalmente accettato e utilizzabile. Nell'agosto 1988 Joe Becker pubblica una prima bozza di quello che lui stesso chiama Unicode, “un sistema di codifica dei caratteri testuali che sia internazionale e multilingua”. Ed è in questo quadro di riferimento che Becker spiega anche l'origine del nome, teso a suggerire l'idea di un sistema di codifica “unico, unificato e universale”.
La prima versione dell'Unicode è basata su un modello di codifica di 16 bit per ogni carattere. “Unicode fornisce un sistema di codifica del testo che sia utilizzabile universalmente e affidabile – afferma Becker nella sua bozza. Il sistema può essere descritto a grandi linee come un “ASCII esteso”, che vede l'utilizzo di 16 bit per la rappresentazione dei caratteri di tutti gli alfabeti e tutte le lingue ora in uso”.
Nei primi mesi del 1989 il gruppo di lavoro si allarga, sino a comprendere più di dieci esperti designer e informatici di fama internazionale (provenienti da Microsoft, NeXT, Sun Microsystem e altre). Tra la fine del 1990 e l'inizio del 1991 il gruppo di lavoro si trasforma nell'Unicode Consortium, che nell'ottobre 1991 rilascia la versione 1.0 dello standard.
Nel 1996 è rilasciato l'Unicode 2.0 che, tra le varie migliorie, presenta una modifica sostanziale. Il limite dei 16 bit (che, tenendo conto di un fattore di sicurezza equivalente a 2 bit, permette di rappresentare 16.384 caratteri a fronte di 65.536 diverse combinazioni possibili) ) è eliminato, così da riuscire a rappresentare un numero maggiore di alfabeti. La scelta dei 16 bit è dettata, infatti, dall'errata credenza che fosse necessario codificare e gestire esclusivamente i caratteri degli alfabeti maggiormente utilizzati: nemmeno un decennio più tardi ci si accorge di quanto questa scelta limiti le possibilità dell'Unicode ed è, di fatto, superata.
La settima versione dell'Unicode è rilasciata nel giugno 2014 e include 123 set di sistemi di scrittura e 113.021 caratteri codificati.