Unicode
| Unicode |
|---|
| Codifiche |
| UCS |
| Mappatura |
| Testo bidirezionale |
| BOM |
| Unificazione Han |
| Unicode eHTML |
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. Unicode è stato compilato e viene aggiornato e pubblicizzato dall' Unicode Consortium[1], un consorzio internazionale di aziende interessate alla interoperabilità nel trattamento informatico dei testi in lingue diverse.
Il codice assegnato al carattere[2] viene rappresentato con U+, seguito dalle quattro (o sei) cifre esadecimali del numero che lo individua.
Unicode incorpora, nella primissima parte, la codifica ISO/IEC 8859-1[3], ma va molto oltre, codificando i caratteri usati in quasi tutte le lingue vive e in alcune lingue morte, nonché simboli matematici e chimici, cartografici, l'alfabeto Braille, ideogrammi ecc.
Attualmente lo standard Unicode non rappresenta ancora tutti i caratteri in uso nel mondo. Essendo ancora in evoluzione, si prefigge di coprire tutti i caratteri rappresentabili, garantendo la compatibilità e la non sovrapposizione con le codifiche dei caratteri già definiti, ma lasciando comunque dei ben precisi campi di codici "non usati", da riservare per la gestione autonoma all'interno di applicazioni particolari.
L'Unicode viene supportato dai moderni standard della programmazione e del markup come XML, Java, JavaScript, LDAP, CORBA 3.0, e da vari sistemi operativi.
Indice |
[modifica] Struttura del codice
Unicode era stato originariamente pensato come una codifica a 16 bit (quattro cifre esadecimali) che dava la possibilità di codificare 65.536 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.
In realtà, solo una piccolissima parte di questa disponibilità di codici è attualmente (al 2009) 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[4], 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.
| Piano | Intervallo | Descrizione | Abbreviazione |
|---|---|---|---|
| 0 | 000000-00FFFF | Basic Multilingual Plane | BMP |
| 1 | 010000-01FFFF | Supplementary Multilingual Plane | SMP |
| 2 | 020000-02FFFF | Supplementary Ideographic Plane | SIP |
| 3 | 030000-03FFFF | Designato preliminarmente come Tertiary Ideographic Plane (TIP), ma nessun carattere gli è stato assegnato al momento[5]. | TIP |
| 4-13 | 040000-0DFFFF | Attualmente non assegnati | |
| 14 | 0E0000-0EFFFF | Supplementary Special-purpose Plane | SSP |
| 15 | 0F0000-0FFFFF | Supplementary Private Use Area-A | |
| 16 | 100000-10FFFF | Supplementary Private Use Area-B |
[modifica] Piano di base multilinguistico (BMP)
Il primo piano (piano 0), il Piano di base multilinguistico (BMP - Basic Multilingual Plane), è 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).
| Intervallo | Descrizione |
|---|---|
| 0000-007F | C0 Controls and Basic Latin |
| 0080-00FF | C1 Controls and Latin-1 Supplement |
| 0100-017F | Latin Extended-A |
| 0180-024F | Latin Extended-B |
| 0250-02AF | IPA Extensions |
| 02B0-02FF | Spacing Modifier Letters |
| 0300-036F | Combining Diacritical Marks |
| 0370-03FF | Greek and Coptic |
| 0400-04FF | Cyrillic |
| 0500-052F | Cyrillic Supplement |
| 0530-058F | Armenian |
| 0590-05FF | Hebrew |
| 0600-06FF | Arabic |
| 0700-074F | Syriac |
| 0750-077F | Arabic Supplement |
| 0780-07BF | Thaana |
| 07C0-07FF | N'Ko |
| 0900-097F | Devanagari |
| 0980-09FF | Bengali |
| 0A00-0A7F | Gurmukhi |
| 0A80-0AFF | Gujarati |
| 0B00-0B7F | Oriya |
| 0B80-0BFF | Tamil |
| 0C00-0C7F | Telugu |
| 0C80-0CFF | Kannada |
| 0D00-0D7F | Malayalam |
| 0D80-0DFF | Sinhala |
| 0E00-0E7F | Thai |
| 0E80-0EFF | Lao |
| 0F00-0FFF | Tibetan |
| 1000-109F | Myanmar |
| 10A0-10FF | Georgian |
| 1100-11FF | Hangul Jamo |
| 1200-137F | Ethiopic |
| 13A0-13FF | Cherokee |
| 1400-167F | Unified Canadian Aboriginal Syllabics |
| 1680-169F | Ogham |
| 16A0-16FF | Runic |
| 1700-171F | Tagalog |
| 1720-173F | Hanunoo |
| 1740-175F | Buhid |
| 1760-177F | Tagbanwa |
| 1780-17FF | Khmer |
| 1800-18AF | Mongolian |
| 1900-194F | Limbu |
| 1950-197F | Tai Le |
| 19E0-19FF | Khmer Symbols |
| 1D00-1D7F | Phonetic Extensions |
| 1E00-1EFF | Latin Extended Additional |
| 1F00-1FFF | Greek Extended |
| 2000-206F | General Punctuation |
| 2070-209F | Superscripts and Subscripts |
| 20A0-20CF | Currency Symbols |
| 20D0-20FF | Combining Diacritical Marks for Symbols |
| 2100-214F | Letterlike Symbols |
| 2150-218F | Number Forms |
| 2190-21FF | Arrows |
| 2200-22FF | Mathematical Operators |
| 2300-23FF | Miscellaneous Technical |
| 2400-243F | Control Pictures |
| 2440-245F | Optical Character Recognition |
| 2460-24FF | Enclosed Alphanumerics |
| 2500-257F | Box Drawing |
| 2580-259F | Block Elements |
| 25A0-25FF | Geometric Shapes |
| 2600-26FF | Miscellaneous Symbols |
| 2700-27BF | Dingbats |
| 27C0-27EF | Miscellaneous Mathematical Symbols-A |
| 27F0-27FF | Supplemental Arrows-A |
| 2800-28FF | Braille Patterns |
| 2900-297F | Supplemental Arrows-B |
| 2980-29FF | Miscellaneous Mathematical Symbols-B |
| 2A00-2AFF | Supplemental Mathematical Operators |
| 2B00-2BFF | Miscellaneous Symbols and Arrows |
| 2E80-2EFF | CJK Radicals Supplement |
| 2F00-2FDF | Kangxi Radicals |
| 2FF0-2FFF | Ideographic Description Characters |
| 3000-303F | CJK Symbols and Punctuation |
| 3040-309F | Hiragana |
| 30A0-30FF | Katakana |
| 3100-312F | Bopomofo |
| 3130-318F | Hangul Compatibility Jamo |
| 3190-319F | Kanbun |
| 31A0-31BF | Bopomofo Extended |
| 31F0-31FF | Katakana Phonetic Extensions |
| 3200-32FF | Enclosed CJK Letters and Months |
| 3300-33FF | CJK Compatibility |
| 3400-4DBF | CJK Unified Ideographs Extension A |
| 4DC0-4DFF | Yijing Hexagram Symbols |
| 4E00-9FFF | CJK Unified Ideographs |
| A000-A48F | Yi Syllables |
| A490-A4CF | Yi Radicals |
| AC00-D7AF | Hangul Syllables |
| D800-DB7F | High Surrogates |
| DB80-DBFF | High Private Use Surrogates |
| DC00-DFFF | Low Surrogates |
| E000-F8FF | Private Use Area |
| F900-FAFF | CJK Compatibility Ideographs |
| FB00-FB4F | Alphabetic Presentation Forms |
| FB50-FDFF | Arabic Presentation Forms-A |
| FE00-FE0F | Variation Selectors |
| FE20-FE2F | Combining Half Marks |
| FE30-FE4F | CJK Compatibility Forms |
| FE50-FE6F | Small Form Variants |
| FE70-FEFF | Arabic Presentation Forms-B |
| FF00-FFEF | Halfwidth and Fullwidth Forms |
| FFF0-FFFF | Specials |
[modifica] Sistemi di scrittura rappresentati
Unicode comprende quasi tutti i sistemi di scrittura attualmente utilizzati, fra i quali:
In aggiunta a quelli citati, sono disponibili glifi appartenenti a molte lingue morte:
|
Infine, lo Unicode comprende anche molti simboli, come quelli matematici e musicali.
[modifica] Versioni Unicode
Negli ultimi anni una nuova versione è stata rilasciata 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 alla norma ISO 10646-1: 1993)
- Unicode 1.1.5 giugno 1995
- Unicode 2.0.0 luglio 1996 (Allineata alla norma 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 alla norma ISO 10646-1: 2000)
- Unicode 3.0.1 agosto 2000
- Unicode 3.1.0 marzo 2001 (Allineata alla norma ISO 10646-2: 2001)
- Unicode 3.1.1 agosto 2001
- Unicode 3.2.0 marzo 2002
- Unicode 4.0.0 aprile 2003 (Allineata alla norma ISO 10646: 2003)
- Unicode 4.0.1 marzo 2004
- Unicode 4.1.0 marzo 2005
- Unicode 5.0.0 luglio 2006 oltre 99.000 glifi[6]
- Unicode 5.1.0 aprile 2008
- Unicode 5.2.0 ottobre 2009
- Unicode 6.0.0 10 ottobre 2010
- Unicode 6.1.0 26 gennaio 2012
- Unicode 6.2.0 26 settembre 2012
[modifica] Note
- ^ (EN) Pagina ufficiale di Unicode Consortium: http://www.unicode.org/consortium/consort.html
- ^ "Code point", in inglese.
- ^ Detta anche ISO Latin-1 e nota col nomignolo ASCII esteso, che indica però anche molte altre codifiche a 8 bit (basate sul vecchio standard ASCII a 7 bit), che consentiva la rappresentazione fino a 256 caratteri ed era sufficiente per gli alfabeti dell'Europa Occidentale e del Nord America.
- ^ Piani assegnati (2009):
1 00-BMP Piano di base Multilinguistico
2 01-SMP piano supplementare multilinguistico
3 02-SIP piano supplementare ideografico
15 0E-SSP piano supplementare per scopi speciali
16 0F-PUA riservato ad aree di uso privato
17 10-PUA riservato ad aree di uso privato - ^ Roadmap to the TIP
- ^ Unicode Consortium: Unicode Character Database 5.0 Released, 18 luglio 2006
[modifica] Voci correlate
- Charset
- Ordine dei byte (inglese Endianness)
- ConScript Unicode Registry
- Aiuto:Unicode
- Operatori matematici Unicode
- ASCII
- ASCII esteso
[modifica] Altri progetti
Commons contiene immagini o altri file su Unicode
Wikizionario contiene il lemma di dizionario «Unicode»
[modifica] Collegamenti esterni
- Cos'è Unicode? Dal sito di Unicode
- (DE, EN) DecodeUnicode - Unicode WIKI 98.884 gifs
- Semplice HowTo su Unicode e UTF-8
- (EN) http://www.unicode.org/
- (EN) http://www.joelonsoftware.com/articles/Unicode.html Joel on software: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
|
|