unicode(7) Miscellaneous Information Manual unicode(7)
NUME
unicode - set de caractere universal
DESCRIERE
Standardul interna>ional ISO/IEC 10646 define>te setul universal de
caractere (,,Universal Character Set": UCS). UCS con>ine toate
caracterele din toate celelalte standarde de seturi de caractere. De
asemenea, garanteaza ,,compatibilitatea dus-intors"; cu alte cuvinte,
tabelele de conversie pot fi construite astfel incat sa nu se piarda
nicio informa>ie atunci cand un >ir de caractere este convertit din
orice alta codificare in UCS >i invers.
UCS con>ine caracterele necesare pentru a reprezenta practic toate
limbile cunoscute. Acestea includ nu numai caracterele latine,
grece>ti, chirilice, ebraice, arabe, armene>ti >i georgiene, ci
>i ideogramele chineze>ti, japoneze >i coreene Han, precum >i
caractere precum Hiragana, Katakana, Hangul, Devanagari, Bengali,
Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Thai,
Lao, Khmer, Bopomofo, Tibetana, Runic, Etiopiana, Silabica canadiana,
Cherokee, Mongola, Ogham, Myanmar, Sinhala, Thaana, Yi >i altele. In
ceea ce prive>te scripturile care nu sunt inca acoperite, cercetarile
privind cea mai buna codificare a acestora pentru utilizarea pe
calculator sunt inca in curs de desfa>urare >i vor fi adaugate in
cele din urma. Acestea ar putea include in cele din urma nu numai
hieroglife >i diverse limbi indo-europene istorice, ci chiar >i
unele scripturi artistice selectate, cum ar fi Tengwar, Cirth >i
Klingon. UCS acopera, de asemenea, un numar mare de simboluri grafice,
tipografice, matematice >i >tiin>ifice, inclusiv cele furnizate
de TeX, Postscript, APL, MS-DOS, MS-Windows, Macintosh, fonturi OCR,
precum >i de multe sisteme de procesare a textelor >i de publicare,
iar altele sunt in curs de adaugare.
Standardul UCS (ISO/IEC 10646) descrie o arhitectura a setului de
caractere pe 31 de bi>i care consta din 128 de grupuri pe 24 de
bi>i, fiecare fiind impar>it in 256 de planuri pe 16 bi>i,
alcatuite din 256 de randuri pe 8 bi>i cu 256 de pozi>ii coloana,
una pentru fiecare caracter. Partea 1 a standardului (ISO/IEC 10646-1)
define>te primele 65534 de pozi>ii de cod (de la 0x0000 la 0xfffd),
care formeaza Planul multilingvistic de baza (,,Basic Multilingual
Plane": BMP), adica planul 0 din grupul 0. Partea 2 a standardului
(ISO/IEC 10646-2) adauga caractere la grupul 0 in afara de BMP in mai
multe planuri suplimentare in intervalul 0x10000 - 0x10ffff. Nu exista
planuri de adaugare a caracterelor dincolo de 0x10ffff la standard,
prin urmare, din intregul spa>iu de cod, doar o mica parte din grupul
0 va fi utilizata in viitorul apropiat. BMP con>ine toate caracterele
care se gasesc in celelalte seturi de caractere utilizate in mod
obi>nuit. Planurile suplimentare adaugate de ISO/IEC 10646-2 acopera
doar caracterele mai exotice pentru nevoi speciale in domeniul
>tiin>ific, al imprimarii dic>ionarelor, al industriei
editoriale, al protocoalelor de nivel superior >i al entuzia>tilor.
Reprezentarea fiecarui caracter UCS sub forma unui cuvant de 2 octe>i
se nume>te forma UCS-2 (numai pentru caracterele BMP), in timp ce
UCS-4 este reprezentarea fiecarui caracter sub forma unui cuvant de 4
octe>i. In plus, exista doua forme de codificare: UTF-8 pentru
compatibilitatea cu programele de procesare ASCII >i UTF-16 pentru
gestionarea retro-compatibila a caracterelor non-BMP pana la 0x10ffff
de catre programele UCS-2.
Caracterele UCS de la 0x0000 la 0x007f sunt identice cu cele din setul
clasic de caractere US-ASCII, iar caracterele din intervalul de la
0x0000 la 0x00ff sunt identice cu cele din ISO/IEC 8859-1 (Latin-1).
Combinarea caracterelor
Unele puncte de cod din UCS au fost atribuite pentru caractere de
combinare. Acestea sunt similare cu tastele de accent fara spa>iere
de pe o ma>ina de scris. O combina>ie de caractere nu face decat sa
adauge un accent la caracterul anterior. Cele mai importante caractere
accentuate au coduri proprii in UCS, insa mecanismul de combinare a
caracterelor ne permite sa adaugam accente >i alte semne diacritice
la orice caracter. Un caracter de combinare nu face decat sa adauge un
accent la caracterul anterior. Cele mai importante caractere accentuate
au coduri proprii in UCS, insa mecanismul de combinare a caracterelor
ne permite sa adaugam accente >i alte semne diacritice la orice
caracter. Caracterele de combinare urmeaza intotdeauna caracterul pe
care il modifica. De exemplu, caracterul german Umlaut-A (,,Litera
majuscula latina A cu diereza") poate fi reprezentat fie prin codul UCS
precompus 0x00c4, fie ca o combina>ie de ,,Litera majuscula latina A"
normala urmata de o ,,diereza combinatorie": 0x0041 0x0308.
Combinarea caracterelor este esen>iala, de exemplu, pentru
codificarea scriptului thailandez sau pentru compunerea matematica >i
utilizatorii alfabetului fonetic interna>ional.
Niveluri de implementare
Deoarece nu se a>teapta ca toate sistemele sa accepte mecanisme
avansate, cum ar fi combinarea caracterelor, ISO/IEC 10646-1 specifica
urmatoarele trei niveluri de implementare ale UCS:
Nivelul 1
Caracterele combinate >i Hangul Jamo (o varianta de
codificare a alfabetului coreean, in care o pictograma de
silaba Hangul este codificata ca un triplet sau o pereche de
coduri de vocale/consonante) nu sunt acceptate.
Nivelul 2
In plus fa>a de nivelul 1, acum sunt permise combina>ii de
caractere pentru unele limbi in care acestea sunt esen>iale
(de exemplu, thailandeza, lao, ebraica, araba, devanagari,
malaieziana).
Nivelul 3
Sunt acceptate toate caracterele UCS.
Standardul Unicode 3.0 publicat de Consor>iul Unicode con>ine exact
planul multilingvistic de baza UCS la nivelul de implementare 3, a>a
cum este descris in ISO/IEC 10646-1:2000. Unicode 3.1 a adaugat
planurile suplimentare din ISO/IEC 10646-2. Standardul Unicode >i
rapoartele tehnice publicate de Consor>iul Unicode ofera numeroase
informa>ii suplimentare privind semantica >i utilizarile
recomandate pentru diverse caractere. Acestea ofera orientari >i
algoritmi pentru editarea, sortarea, compararea, normalizarea,
conversia >i afi>area >irurilor Unicode.
Unicode in Linux
In GNU/Linux, tipul C wchar_t este un tip de numar intreg cu semn (+/-)
pe 32 de bi>i. Valorile sale sunt intotdeauna interpretate de
biblioteca C ca valori de cod UCS (in toate localizarile), conven>ie
care este semnalata de biblioteca C GNU C aplica>iilor prin definirea
constantei __STDC_ISO_10646__ a>a cum este specificata in standardul
ISO C99.
UCS/Unicode poate fi utilizat la fel ca ASCII in fluxurile de
intrare/ie>ire, in comunicarea prin terminal, in fi>ierele de text
simplu, in numele fi>ierelor >i in variabilele de mediu in
codificarea multiocte>i UTF-8 compatibila cu ASCII. Pentru a semnala
tuturor aplica>iilor utilizarea UTF-8 ca codificare a caracterelor,
trebuie sa se selecteze o configurare regionala adecvata (locale) prin
intermediul variabilelor de mediu (de exemplu, ,,LANG=en_GB.UTF-8").
Func>ia nl_langinfo(CODESET) returneaza numele codificarii selectate.
Func>iile de biblioteca, cum ar fi wctomb(3) >i mbsrtowcs(3), pot
fi utilizate pentru a transforma caracterele >i >irurile interne
wchar_t in codificarea caracterelor de sistem >i invers, iar
wcwidth(3) informeaza cu cate pozi>ii (0-2) este avansat cursorul
prin ie>irea unui caracter.
Zone de utilizare privata (,,Private Use Areas": PUA)
In planul multilingvistic de baza, intervalul de la 0xe000 la 0xf8ff nu
va fi niciodata atribuit niciunui caracter de catre standard >i este
rezervat pentru uz privat. Pentru comunitatea Linux, aceasta zona
privata a fost subdivizata in continuare in intervalul 0xe000 - 0xefff,
care poate fi utilizat individual de orice utilizator final, >i in
zona Linux din intervalul 0xf000 - 0xf8ff, unde extensiile sunt
coordonate intre to>i utilizatorii Linux. Registrul caracterelor
atribuite zonei Linux este men>inut de LANANA, iar registrul
propriu-zis este Documentation/admin-guide/unicode.rst in sursele
nucleului Linux (sau Documentation/unicode.txt inainte de Linux 4.10).
Alte doua planuri sunt rezervate pentru uz privat, planul 15 (Zona
suplimentara de utilizare privata-A, intervalul de la 0xf0000 la
0xffffd) >i planul 16 (Zona suplimentara de utilizare privata-B,
intervalul de la 0x100000 la 0x10fffd).
Literatura
o Tehnologia informa>iei -- Set universal de caractere codificate cu
octe>i multipli (UCS) -- Partea 1: Arhitectura >i planul
multilingvistic de baza. Standardul interna>ional ISO/IEC 10646-1,
Organiza>ia Interna>ionala pentru Standardizare, Geneva, 2000.
Aceasta este specifica>ia oficiala a UCS. Disponibila la
.
o Standardul Unicode, versiunea 3.0. The Unicode Consortium,
Addison-Wesley, Reading, MA, 2000, ISBN 0-201-61633-5.
o S. Harbison, G. Steele. C: Un manual de referin>a. A patra
edi>ie, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
O buna carte de referin>a despre limbajul de programare C. Cea
de-a patra edi>ie acopera amendamentul 1 din 1994 la standardul
ISO C90, care adauga un numar mare de noi func>ii de biblioteca C
pentru gestionarea codurilor de caractere late >i multioctet, dar
nu acopera inca ISO C99, care a imbunata>it >i mai mult suportul
pentru caracterele late >i multioctet.
o Rapoarte tehnice Unicode.
o Markus Kuhn: UTF-8 >i Unicode FAQ pentru UNIX/Linux.
o Bruno Haible: Unicode HOWTO.
CONSULTA>I >I
locale(1), setlocale(3), charsets(7), utf-8(7)
TRADUCERE
Traducerea in limba romana a acestui manual a fost facuta de Remus-
Gabriel Chelu
Aceasta traducere este documenta>ie gratuita; citi>i Licen>a
publica generala GNU Versiunea 3
sau o versiune ulterioara
cu privire la condi>ii privind drepturile de autor. NU se asuma
NICIO RESPONSABILITATE.
Daca gasi>i erori in traducerea acestui manual, va rugam sa
trimite>i un e-mail la .
Pagini de manual de Linux 6.8 2 mai 2024 unicode(7)