unicode(7) Miscellaneous Information Manual unicode(7) NUME unicode - set de caractere universal DESCRIERE Standardul internaional ISO/IEC 10646 definete setul universal de caractere (,,Universal Character Set": UCS). UCS conine 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 informaie atunci cand un ir de caractere este convertit din orice alta codificare in UCS i invers. UCS conine caracterele necesare pentru a reprezenta practic toate limbile cunoscute. Acestea includ nu numai caracterele latine, greceti, chirilice, ebraice, arabe, armeneti i georgiene, ci i ideogramele chinezeti, 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 privete scripturile care nu sunt inca acoperite, cercetarile privind cea mai buna codificare a acestora pentru utilizarea pe calculator sunt inca in curs de desfaurare 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 tiinifice, 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 bii care consta din 128 de grupuri pe 24 de bii, fiecare fiind imparit in 256 de planuri pe 16 bii, alcatuite din 256 de randuri pe 8 bii cu 256 de poziii coloana, una pentru fiecare caracter. Partea 1 a standardului (ISO/IEC 10646-1) definete primele 65534 de poziii 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 spaiu de cod, doar o mica parte din grupul 0 va fi utilizata in viitorul apropiat. BMP conine toate caracterele care se gasesc in celelalte seturi de caractere utilizate in mod obinuit. Planurile suplimentare adaugate de ISO/IEC 10646-2 acopera doar caracterele mai exotice pentru nevoi speciale in domeniul tiinific, al imprimarii dicionarelor, al industriei editoriale, al protocoalelor de nivel superior i al entuziatilor. Reprezentarea fiecarui caracter UCS sub forma unui cuvant de 2 octei se numete forma UCS-2 (numai pentru caracterele BMP), in timp ce UCS-4 este reprezentarea fiecarui caracter sub forma unui cuvant de 4 octei. 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 spaiere de pe o maina de scris. O combinaie 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 combinaie de ,,Litera majuscula latina A" normala urmata de o ,,diereza combinatorie": 0x0041 0x0308. Combinarea caracterelor este eseniala, de exemplu, pentru codificarea scriptului thailandez sau pentru compunerea matematica i utilizatorii alfabetului fonetic internaional. Niveluri de implementare Deoarece nu se ateapta 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 faa de nivelul 1, acum sunt permise combinaii de caractere pentru unele limbi in care acestea sunt eseniale (de exemplu, thailandeza, lao, ebraica, araba, devanagari, malaieziana). Nivelul 3 Sunt acceptate toate caracterele UCS. Standardul Unicode 3.0 publicat de Consoriul Unicode conine exact planul multilingvistic de baza UCS la nivelul de implementare 3, aa 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 Consoriul Unicode ofera numeroase informaii suplimentare privind semantica i utilizarile recomandate pentru diverse caractere. Acestea ofera orientari i algoritmi pentru editarea, sortarea, compararea, normalizarea, conversia i afiarea irurilor Unicode. Unicode in Linux In GNU/Linux, tipul C wchar_t este un tip de numar intreg cu semn (+/-) pe 32 de bii. Valorile sale sunt intotdeauna interpretate de biblioteca C ca valori de cod UCS (in toate localizarile), convenie care este semnalata de biblioteca C GNU C aplicaiilor prin definirea constantei __STDC_ISO_10646__ aa cum este specificata in standardul ISO C99. UCS/Unicode poate fi utilizat la fel ca ASCII in fluxurile de intrare/ieire, in comunicarea prin terminal, in fiierele de text simplu, in numele fiierelor i in variabilele de mediu in codificarea multioctei UTF-8 compatibila cu ASCII. Pentru a semnala tuturor aplicaiilor 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"). Funcia nl_langinfo(CODESET) returneaza numele codificarii selectate. Funciile 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 poziii (0-2) este avansat cursorul prin ieirea 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 toi utilizatorii Linux. Registrul caracterelor atribuite zonei Linux este meninut 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 informaiei -- Set universal de caractere codificate cu octei multipli (UCS) -- Partea 1: Arhitectura i planul multilingvistic de baza. Standardul internaional ISO/IEC 10646-1, Organizaia Internaionala pentru Standardizare, Geneva, 2000. Aceasta este specificaia 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 referina. A patra ediie, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3. O buna carte de referina despre limbajul de programare C. Cea de-a patra ediie acopera amendamentul 1 din 1994 la standardul ISO C90, care adauga un numar mare de noi funcii de biblioteca C pentru gestionarea codurilor de caractere late i multioctet, dar nu acopera inca ISO C99, care a imbunatait 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. CONSULTAI 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 documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.8 2 mai 2024 unicode(7)