Unicode

Unicode è un sistema di codifica che assegna un numero univoco ad ogni carattere usato per la scrittura di testi, in maniera indipendente dalla lingua, dalla piattaforma informatica e dal programma utilizzato.

È stato compilato e viene aggiornato e pubblicizzato dallo Unicode Consortium, un consorzio internazionale di aziende interessate alla interoperabilità nel trattamento informatico dei testi in lingue diverse.

Storia
Unicode è stato creato per risolvere i limiti dei tradizionali schemi di codifica dei caratteri Ad esempio, sebbene i caratteri definiti nella ISO 8859-1 siano ampiamente utilizzati in paesi diversi, spesso si verificano incompatibilità tra paesi diversi. Molti metodi di codifica tradizionali hanno un problema comune, ovvero consentono ai computer di gestire un ambiente bilingue (di solito utilizzando lettere latine e le loro lingue native), ma non possono supportare un ambiente multilingue allo stesso tempo (riferendosi a una situazione in cui più lingue possono essere mescolate contemporaneamente).

La codifica Unicode contiene caratteri con stili di scrittura diversi, come " ɑ / a ", "强 / 强", "casa / famiglia / 戸". Tuttavia , c'è stata una controversia sull'identificazione del polimorfismo nei caratteri cinesi. Per i dettagli, vedere gli ideogrammi unificati di Cina, Giappone e Corea .

In termini di elaborazione testi, Unicode definisce un codice univoco (cioè un numero intero) per ogni carattere anziché un glifo. In altre parole, Unicode elabora i caratteri in modo astratto (cioè i numeri) e lascia il lavoro di deduzione visiva (come dimensione del carattere, forma dell'aspetto, forma del carattere, stile, ecc.) ad altri software, come la navigazione web o l'elaboratore di testi.

Al momento, quasi tutti i sistemi informatici supportano l'alfabeto latino di base e ciascuno supporta diversi altri metodi di codifica. Per essere compatibili con loro, i primi 256 caratteri di Unicode sono riservati ai caratteri definiti da ISO 8859-1, in modo che la conversione delle lingue esistenti dell'Europa occidentale non richieda una considerazione speciale; e un gran numero degli stessi caratteri viene ripetuto in diversi. Nel codice carattere, il vecchio complicato metodo di codifica può essere convertito direttamente tra la codifica Unicode senza perdere alcuna informazione. Ad esempio, la sezione del formato full-form contiene il formato full-form delle principali lettere latine. Nei glifi cinesi, giapponesi e coreani, questi caratteri sono presentati in full-form invece che nella comune forma half-form, che ha un effetto importante sul testo verticale e sul testo a spaziatura fissa.

Quando si rappresenta un carattere Unicode, di solito è rappresentato da "U +" seguito da un insieme di cifre esadecimali. Nel piano multilingue di base: (piano multilingue di base in inglese tutti i caratteri. BMP abbreviato noto anche come "piano zero", piano 0) all'interno, si utilizzano quattro cifre (ovvero 2 byte, per un totale di 16 bit, Come U + 4AE0, che supporta un totale di oltre  caratteri); per i caratteri al di fuori del piano zero si devono utilizzare cinque o sei cifre. La vecchia versione dello standard Unicode utilizza metodi di marcatura simili, ma con alcune piccole differenze: in Unicode 3.0, "U-" viene utilizzato seguito da otto cifre e "U +" deve essere seguito da quattro cifre.

Struttura del codice 
Unicode era stato originariamente pensato come una codifica a 16 bit (quattro cifre esadecimali) che dava la possibilità di codificare 65.535 (216 − 1) caratteri. Tanto si riteneva essere sufficiente per rappresentare i caratteri impiegati in tutte le lingue scritte del mondo.
Ora invece lo standard Unicode, che tendenzialmente è perfettamente allineato con la norma ISO/IEC 10646, prevede una codifica fino a 21 bit e supporta un repertorio di codici numerici che possono rappresentare circa un milione di caratteri.
Ciò appare sufficiente a coprire anche i fabbisogni di codifica di scritti del patrimonio storico dell'umanità, nelle diverse lingue e negli svariati sistemi di segni utilizzati.

Al 2009, solo una piccolissima parte di questa disponibilità di codici è assegnata. Per lo sviluppo dei codici sono infatti previsti 17 "piani" ("planes", in inglese), da 00 a 10hex, ciascuno con 65.536 posizioni (quattro cifre esadecimali), ma solo i primi tre e gli ultimi tre piani sono ad oggi assegnati, e di questi il primo, detto anche BMP, è praticamente sufficiente a coprire tutte le lingue più usate.

Concretamente, questo repertorio di codici numerici è serializzato mediante diversi schemi di ricodifica, che consentono l'uso di codici più compatti per i caratteri usati più di frequente. È previsto l'uso di codifiche con unità da 8 bit (byte), 16 bit (word) e 32 bit (double word), descritte rispettivamente come UTF-8, UTF-16 e UTF-32.

Basic Multilingual Plane (BMP) 
Il piano 0, il Basic Multilingual Plane (lett. "Piano multilinguistico di base") o BMP, è quello in cui sono stati assegnati la maggior parte dei caratteri. Il BMP contiene caratteri per quasi tutti i moderni linguaggi e un grande numero di caratteri speciali. La maggioranza dei codici assegnati ai caratteri nel BMP sono stati usati per codificare quelli cinesi, giapponesi e coreani (CJK).

Sistemi di scrittura rappresentati 
Unicode comprende quasi tutti i sistemi di scrittura attualmente utilizzati, fra i quali:

 Alfabeto arabo
 Alfabeto armeno
 Alfabeto bengali
 Alfabeto Braille
 Alfabeto sillabico Aborigeno Canadese
 Alfabeto sillabico Cherokee
 Alfabeto copto
 Alfabeto cirillico
 Alfabeto devanagari
 Alfabeto ebraico
 Alfabeto esperanto
 Alfabeto etiopico
 Alfabeto georgiano
 Alfabeto greco

 Alfabeto gujarati
 Alfabeto gurmukhi (Lingua punjabi)
 Alfabeto cinese Han (Ideogrammi Hanzi e Ideogrammi Hanja)
 Alfabeto Hangul (Lingua coreana)
 Alfabeto Hiragana e Alfabeto Katakana, Ideogrammi Kanji (Lingua giapponese)
 Alfabeto fonetico internazionale (IPA)
 Alfabeto khmer (Cambogiano)
 Alfabeto kannada
 Alfabeto lao
 Alfabeto latino (base ed esteso)
 Alfabeto limbu
 Alfabeto malayalam
 Alfabeto mongolo

 Alfabeto myanmar (Burmese)
 Alfabeto N'Ko
 Alfabeto oriya
 Alfabeto osmanya
 Alfabeto sylheti nagari
 Alfabeto siriaco
 Alfabeto tamil
 Alfabeto telugu
 Alfabeto tailandese
 Alfabeto tibetano
 Alfabeto tifinagh
 Alfabeto yi
 Alfabeto zhuyin (Bopomofo)

In aggiunta a quelli citati, sono disponibili glifi appartenenti a molte lingue morte:

 Scrittura cuneiforme
 Alfabeto Deseret
 Alfabeto Lineare B
 Alfabeto Kharoshti

 Alfabeto ogamico
 Alfabeto antico italico (Etrusco, Osco e Umbro)
 Alfabeto antico persiano
 Alfabeto fenicio

 Alfabeto gotico
 Alfabeto runico
 Alfabeto Shavian
 Alfabeto ugaritico

Infine, lo Unicode comprende anche molti simboli, come quelli matematici e musicali.

Cronologia delle versioni 
Negli ultimi anni una nuova versione è stata pubblicata praticamente ogni anno a seguito di una media di oltre 1.000 richieste di cambiamenti all'anno.

 DP 10646 1989 (Proposta di bozza della norma ISO 10646, indipendente dall'Unicode)
 DIS-1 10646 1990 (Prima bozza della norma ISO 10646, indipendente dall'Unicode)
 Unicode 1.0.0 ottobre 1991
 Unicode 1.0.1º giugno 1992 (Modificato per un eventuale allineamento alla norma ISO 10646)
 Unicode 1.1.0 giugno 1993 (Unicode e ISO unificate per la prima volta: i due codici sono identici allo standard ISO 10646-1: 1993)
 Unicode 1.1.5 giugno 1995
 Unicode 2.0.0 luglio 1996 (Allineata allo standard ISO 10646 estesa)
 Unicode 2.1.2 maggio 1998 (Fra gli altri, introduzione del carattere euro: €)
 Unicode 2.1.5 agosto 1998
 Unicode 2.1.8 dicembre 1998
 Unicode 2.1.9 aprile 1999
 Unicode 3.0.0 settembre 1999 (Allineata allo standard ISO 10646-1: 2000)
 Unicode 3.0.1 agosto 2000
 Unicode 3.1.0 marzo 2001 (Allineata allo standard ISO 10646-2: 2001)
 Unicode 3.1.1 agosto 2001
 Unicode 3.2.0 marzo 2002
 Unicode 4.0.0 aprile 2003 (Allineata allo standard ISO 10646: 2003)
 Unicode 4.0.1 marzo 2004
 Unicode 4.1.0 31 marzo 2005
 Unicode 5.0.0 14 luglio 2006 oltre 99.000 glifi
 Unicode 5.1.0 4 aprile 2008
 Unicode 5.2.0 1º ottobre 2009
 Unicode 6.0.0 10 ottobre 2010
 Unicode 6.1.0 26 gennaio 2012
 Unicode 6.2.0 26 settembre 2012
 Unicode 6.3.0 30 settembre 2013
 Unicode 7.0.0 16 giugno 2014
 Unicode 8.0.0 17 giugno 2015
 Unicode 9.0.0 21 giugno 2016
 Unicode 10.0.0 20 giugno 2017
 Unicode 11.0.0 5 giugno 2018
 Unicode 12.0.0 5 marzo 2019
 Unicode 12.1.0 7 maggio 2019
 Unicode 13.0.0 10 marzo 2020
Unicode 14.0.0 14 settembre 2021
 Unicode 15.0.0 13 settembre 2022

Note

Voci correlate 
 ASCII
 ASCII esteso
 Charset
 ConScript Unicode Registry
 Ordine dei byte (inglese Endianness)
 Operatori matematici Unicode

Altri progetti

Collegamenti esterni 
 Cos'è Unicode?  Dal sito di Unicode
  The Unicode Consortium
  
  DecodeUnicode - Unicode WIKI 98.884 gifs
 
  Joel on software: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
 Emoji e il loro Unicode

 
Repertori di caratteri