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 <http://www.iso.ch/>. 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. <http://www.unicode.org/reports/> o Markus Kuhn: UTF-8 <?>i Unicode FAQ pentru UNIX/Linux. <http://www.cl.cam.ac.uk/~mgk25/unicode.html> o Bruno Haible: Unicode HOWTO. <http://www.tldp.org/HOWTO/Unicode-HOWTO.html> 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 <remusgabriel.chelu@disroot.org> Aceasta traducere este documenta<?>ie gratuita; citi<?>i Licen<?>a publica generala GNU Versiunea 3 <https://www.gnu.org/licenses/gpl-3.0.html> 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 <translation-team-ro@lists.sourceforge.net>. Pagini de manual de Linux 6.12 22 ianuarie 2025 unicode(7)