unicode(7) Miscellaneous Information Manual unicode(7)
NOME
unicode - insieme universale di caratteri
DESCRIZIONE
The international standard ISO/IEC 10646 defines the Universal
Character Set (UCS). UCS contains all characters of all other
character set standards. It also guarantees "round-trip
compatibility"; in other words, conversion tables can be built such
that no information is lost when a string is converted from any other
encoding to UCS and back.
UCS contiene i caratteri necessari alla rappresentazione di
praticamente tutte le lingue conosciute. Esso comprende non solo i
caratteri latino greco, cirillico, ebreo, arabo, armeno e georgiano, ma
anche alfabeti ideografici cinese, giapponese e coreano han, e i
caratteri hiragana, katakana, hangul, devanagari, bengali, gurmukhi,
gujarati, oriya, tamil, telugu, kannada, malayalam, thai, lao, khmer,
bopomofo, tibetano, runico, etiopico, canadese sillabico, cherokee,
mongolo, ogham, myanmar, sinhala, thaana, yi e altri. Per caratteri non
ancora inclusi la ricerca su come codificarli al meglio e ancora in
corso e prima o poi verranno aggiunti. Cio potrebbe includere non solo
geroglifici e vari linguaggi storici indo-europei, ma anche alcuni
caratteri artistici selezionati come tengwar, cirth e klingon. UCS
include anche un grande numero di simboli grafici, tipografici,
matematici e scientifici, inclusi quelli forniti da TeX, Postscript,
APL, MS-DOS, MS-Windows, Macintosh e font OCR, oltre a molti sistemi di
elaborazione testi e di editoria, e altri se ne stanno aggiungendo.
The UCS standard (ISO/IEC 10646) describes a 31-bit character set
architecture consisting of 128 24-bit groups, each divided into 256
16-bit planes made up of 256 8-bit rows with 256 column positions, one
for each character. Part 1 of the standard (ISO/IEC 10646-1) defines
the first 65534 code positions (0x0000 to 0xfffd), which form the Basic
Multilingual Plane (BMP), that is plane 0 in group 0. Part 2 of the
standard (ISO/IEC 10646-2) adds characters to group 0 outside the BMP
in several supplementary planes in the range 0x10000 to 0x10ffff.
There are no plans to add characters beyond 0x10ffff to the standard,
therefore of the entire code space, only a small fraction of group 0
will ever be actually used in the foreseeable future. The BMP contains
all characters found in the commonly used other character sets. The
supplemental planes added by ISO/IEC 10646-2 cover only more exotic
characters for special scientific, dictionary printing, publishing
industry, higher-level protocol and enthusiast needs.
La rappresentazione di ciascun carattere UCS come parola di 2 byte e
chiamato forma UCS-2 (solo per i caratteri BMP), mentre UCS-4 e la
rappresentazione di ciascun carattere in una parola a 4 byte. In
aggiunta esistono due forme di codifica UTF-8 per retrocompatibilita
col software di elaborazione ASCII e UTF-16 per la gestione della
retrocompatibilita dei caratteri non BMP fino a 0x10ffff del software
UCS-2.
The UCS characters 0x0000 to 0x007f are identical to those of the
classic US-ASCII character set and the characters in the range 0x0000
to 0x00ff are identical to those in ISO/IEC 8859-1 (Latin-1).
Caratteri combinanti
Alcuni codici di UCS sono stati assegnati a caratteri combinanti.
Simile ad un tasto accentato che non avanza in una macchina da
scrivere, un carattere combinante aggiunge un accento al carattere
precedente. I caratteri accentati piu importanti hanno un loro codice
in UCS, ma questo meccanismo permette di aggiungere accenti a altri
segni diacritici a qualsiasi carattere. I caratteri combinanti seguono
sempre il carattere che modificano. Ad esempio, il carattere tedesco A
(<>) puo essere rappresentato sia col
codice UCS precomposto 0x00c4, oppure come combinazione di una normale
<> seguita da una <>: 0x0041
0x0308.
I caratteri combinanti sono essenziali per esempio nella codifica dei
caratteri Thai o per la composizione matematica e per gli utenti
dell'alfabeto internazionale fonetico.
Livelli di implementazione
As not all systems are expected to support advanced mechanisms like
combining characters, ISO/IEC 10646-1 specifies the following three
implementation levels of UCS:
Livello 1
I caratteri combinanti e Hangul Jamo (una variante della
codifica dell'alfabeto coreano, dove le sillabe Hangul sono
codificate come tripletta o coppia di codici
vocale/consonante) non sono supportati.
Livello 2
Come il livello 1, ma alcuni caratteri combinanti sono
permessi in alcuni alfabeti (per es., tailandese, laotiano,
ebraico, arabo, devangari, malese).
Livello 3
Tutti i caratteri UCS sono supportati.
The Unicode 3.0 Standard published by the Unicode Consortium contains
exactly the UCS Basic Multilingual Plane at implementation level 3, as
described in ISO/IEC 10646-1:2000. Unicode 3.1 added the supplemental
planes of ISO/IEC 10646-2. The Unicode standard and technical reports
published by the Unicode Consortium provide much additional information
on the semantics and recommended usages of various characters. They
provide guidelines and algorithms for editing, sorting, comparing,
normalizing, converting, and displaying Unicode strings.
Unicode sotto Linux
Sotto GNU/Linux, il tipo C wchar_t e un tipo intero 32-bit con segno. I
suoi valori sono sempre interpretati dalla libreria C come valori del
codice UCS (in tutte le localizzazioni), una convenzione che e
segnalata alle applicazioni dalla libreria C di GNU definendo la
costante __STDC_ISO_10646__ come specificato nello standard ISO C99.
UCS/Unicode puo essere usato come semplice ASCII nei flussi
input/output, comunicazioni tra terminali, file di testo, nomi file e
variabili d'ambiente nella codifica multi-byte .B UTF-8 compatibile
ASCII. Per segnalare l'uso di UTF-8 come codifica carattere a tutte le
applicazioni deve venire selezionata una localizzazione appropriata
attraverso variabili d'ambiente (es., "LANG=en_GB.UTF-8").
The nl_langinfo(CODESET) function returns the name of the selected
encoding. Library functions such as wctomb(3) and mbsrtowcs(3) can
be used to transform the internal wchar_t characters and strings into
the system character encoding and back and wcwidth(3) tells how many
positions (0-2) the cursor is advanced by the output of a character.
Aree di uso privato (PUA)
L'intervallo da 0xe000 a 0xf8ff nel Piano multi-linguistico di base,
non verra mai assegnato dallo standard a nessun carattere ed e
riservato per uso privato. Per la comunita Linux questo intervallo e
stato ulteriormente suddiviso nell'intervallo da 0xe000 a 0xefff, che
puo essere usato dall'utente finale, e nell'area Linux nell'intervallo
da 0xf000 a 0xf8ff, le cui estensioni sono coordinate fra tutti gli
utenti di Linux. Il registro dei caratteri assegnati all'area Linux e
al momento mantenuto da LANANA e il registro stesso e
Documentation/admin-guide/unicode.rst nei sorgenti del kernel Linux (o
Documentation/unicode.txt prima di Linux 4.10).
Altri due piani sono riservati per uso privato, il piano 15
(Supplementary Private Use Area-A, intervallo da 0xf0000 a 0xffffd) e
il piano 16 (Supplementary Private Use Area-B, intervallo da 0x100000 a
0x10fffd).
Bibliografia
o Information technology -- Universal Multiple-Octet Coded Character
Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
International Standard ISO/IEC 10646-1, International Organization
for Standardization, Geneva, 2000.
Questa e la specifica ufficiale di UCS. Disponibile su
.
o The Unicode Standard, Version 3.0. The Unicode Consortium,
Addison-Wesley, Reading, MA, 2000, ISBN 0-201-61633-5.
o S. Harbison, G. Steele. C: A Reference Manual. Fourth edition,
Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
Un buon testo di riferimento sul linguaggio di programmazione C. La
quarta edizione comprende l'Emendamento 1 del 1994 allo standard ISO
C90, che aggiunge un buon numero di funzioni di libreria C per
gestire codifiche di caratteri lunghi e multibyte, ma non comprende
ancora la ISO C99, che ha migliorato ulteriormente il supporto per i
caratteri lunghi e multibyte.
o Unicode Technical Reports.
o Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux.
o Bruno Haible: Unicode HOWTO.
VEDERE ANCHE
locale(1), setlocale(3), charsets(7), utf-8(7)
TRADUZIONE
La traduzione italiana di questa pagina di manuale e stata creata da
Ottavio G. Rizzo , Giulio Daprela
, Elisabetta Galli e Marco Curreli
Questa traduzione e documentazione libera; leggere la GNU General
Public License Versione 3 o
successiva per le condizioni di copyright. Non ci assumiamo alcuna
responsabilita.
Per segnalare errori nella traduzione di questa pagina di manuale
inviare un messaggio a .
Linux man-pages 6.06 28 gennaio 2024 unicode(7)