Provided by: manpages-pl_20060617-4_all bug

NAZWA

       Unicode - zunifikowany 16-bitowy superzestaw znaków

OPIS

       Międzynarodowy  standard  ISO  10646  definiuje Universal Character Set
       (UCS).  UCS zawiera wszelkie znaki wszelkich  innych  zestawów  znaków.
       Gwarantuje  on  również kompatybilność na okrągło, tj. budowanie takich
       tablic konwersji, że podczas konwersji łańcucha z jednego kodowania  na
       UCS i z powrotem nie jest tracona żadna informacja.

       UCS  zawiera znaki wymagane do przedstawienia prawie wszystkich znanych
       języków.  Obejmuje to, oprócz wielu języków  które  używają  rozszerzeń
       pisma  łacińskiego, także następujące pisma i języki: grecki, cyrylica,
       hebrajski, arabski, armeński, gruziński, japoński,  chiński,  hiragana,
       katakana,  koreański, hangul, devangari, bengalski, gurmukji, gujarati,
       tamilski, oriya, telugu, kannada, malajlamski, tajski, lao, bopomofo  i
       pewną  liczbę  innych.   Trwają  prace  nad włączeniem innych pism, jak
       tybetańskiego,  khmerskiego,  runicznego,   etiopskiego,   hieroglifów,
       różnych języków indoeuropejskich i wielu innych.  Dla większości z tych
       drugich języków w momencie opublikowania standardu  w  1993,  nie  było
       jeszcze  jasnym  jak  można  je  najlepiej zakodować.  Dodatkowo oprócz
       znaków wymaganych przez  pisma,  włączono  także  duży  zestaw  symboli
       graficznych, typograficznych, matematycznych i naukowych, dostarczanych
       z TeX-em, PostScriptem,  MS-DOS-em,  Macintoshem,  Videotextem,  OCR  i
       wieloma innymi systemami przetwarzania tekstów, a także kody specjalne,
       gwarantujące   "kompatybilność   na   okrągło"   z   wszelkimi   innymi
       istniejącymi zestawami znaków.

       Standard   UCS  (ISO  10646)  opisuje  zestaw  znaków  o  architekturze
       31-bitowej. Jednakże dzisiaj tylko pierwszym 65534  pozycjom  kodowania
       (0x000  do  0xfffd),  zwane  Basic Multilingual Plane (BMP), przypisano
       znaki, i spodziewane  jest,  że  tylko  bardzo  egzotyczne  znaki  (np.
       hieroglify)  do  specjalnych celów naukowych otrzymają miejsce poza ową
       16-bitową BMP.

       Znaki UCS 0x0000 do 0x007f są identyczne z tymi w  klasycznym  zestawie
       znaków  US-ASCII,  a  znaki  w zakresie 0x000 do 0x00ff są identyczne z
       tymi w zestawie znaków ISO 8859-1 .

ZNAKI SKŁADAJĄCE

       Niektóre punkty kodowe w UCS zostały przypisane do znaków składających.
       Podobne  są  one  do  niespacyjnych  klawiszy  akcentów  na maszynie do
       pisania.  Znak  składający  dodaje  akcent   do   poprzedniego   znaku.
       Najważniejsze   znaki  akcentowane  mają  osobne  kody  w  UCS,  jednak
       mechanizm znaków składających pozwala  dodawać  akcenty  i  inne  znaki
       diakrytyczne  do  każdego  znaku.  Znaki składające zawsze następują po
       znaku,  który  modyfikują.   Dla  przykładu,  niemiecki  znak  A-umlaut
       ("Latin  capital  letter  A  with diaeresis") może być przedstawiony za
       pomocą bądź to istniejącego już złożonego znaku UCS  o  kodzie  0x00c4,
       bądź alternatywnie jako kombinacja zwykłych znaków "capital letter A" i
       "combining diaeresis": 0x0041 0x0308.

POZIOMY IMPLEMENTACJI

       Ponieważ  należy  się  spodziewać,  że  nie  wszystkie   systemy   będą
       obsługiwać  zaawansowane  mechanizmy  w  rodzaju  składania znaków, ISO
       10646 określa następujące trzy poziomy implementacji UCS:

       Poziom 1 Nieobsługiwane są znaki składane  i  Hangul  Jamo  (specjalne,
                bardziej  skomplikowane kodowanie pisma koreańskiego, w którym
                sylaby Hangul są kodowane jako dwa lub trzy podznaki).

       Poziom 2 Jak poziom 1, jednakże w niektórych pismach zezwala się już na
                niektóre  znaki składające (np. hebrajski, arabski, devangari,
                bengalski,  gurmukhi,  gujarati,  oriya,  tamlilski,   telugu,
                kannaga, malajlamski, tajski i lao).

       Level 3  Wszystkie znaki UCS są obsługiwane.

       Standard  Unicode  1.1,  opublikowany przez Unicode Consortium, zawiera
       dokładnie  UCS   Basic   Multilingual   Plane   na   trzecim   poziomie
       implementacji,  jak  to  opisano  w ISO 10646. Unicode 1.1 dodaje także
       niektóre definicje semantyczne pewnych znaków do definicji ISO 10646.

UNICODE W LINUKSIE

       W Linuksie obecnie powinno używać się BMP tylko na  pierwszym  poziomie
       implementacji,   aby   uniknąć   komplikacji   wynikających  ze  znaków
       składanych.  Wyższe  poziomy  implementacji  są   odpowiedniejsze   dla
       specjalnych   formatów  przetwarzania  tekstów,  ale  nie  jako  ogólny
       systemowy zestaw znaków. Typ w C  wchar_t  jest  w  Linuksie  16-bitową
       liczbą  całkowitą bez znaku i jego wartości interpretowane są jako kody
       UCS na poziomie 1 BMP .

       Ustawienie locale określa czy  systemowym  kodowaniem  znaków  jest  na
       przykład  UTF-8  czy  ISO 8859-1.  Do transformacji wewnętrznych znaków
       wchar_t i łańcuchów na systemowe kodowanie  znaków  i  na  odwrót  mogą
       zostać  użyte  funkcje  biblioteczne  w  rodzaju  wctomb,  mbtowc, albo
       wprintf.

OBSZAR PRYWATNY

       W BMP, kodom z zakresu 0xe000 do 0xf8ff nigdy  nie  zostaną  przypisane
       znaki;  są  one  zarezerwowane  do użytku prywatnego.  Dla społeczności
       Linuksowej ów obszar prywatny został  dalej  podzielony  na  zakres  od
       0xe000  do  0xefff, którego może używać indywidualnie każdy użytkownik,
       oraz strefę linuksową w zakresie 0xf000 do 0xf8ff, której  rozszerzanie
       podlega  koordynacji pomiędzy wszystkimi użytkownikami Linuksa. Rejestr
       znaków przypisanych do strefy Linuksowej  utrzymuje  obecnie  H.  Peter
       Anvin  <Peter.Anvin@linux.org>  z Yggdrasil Computing, Inc. Zawiera one
       niektóre znaki graficzne DEC VT100  których  brakuje  w  Unicode,  daje
       bezpośredni  dostęp  do  znaków w buforze fontu konsoli i zawiera znaki
       używane przez kilka bardziej zaawansowanych pism, jak klingoński.

LITERATURA

       * Information technology - Universal Multiple-Octet Coded Character Set
         (UCS)   -   Part   1:  Architecture  and  Basic  Multilingual  Plane.
         International Standard ISO 10646-1,  International  Organization  for
         Standardization, Genewa, 1993.

         Jest  to  oficjalna  specyfikacja  UCS.   Całkiem  oficjalna, całkiem
         gruba, i całkiem  droga.   Co  do  informacji  o  zamówieniu,  zobacz
         http://www.iso.ch.

       * The Unicode Standard - Worldwide Character Encoding Version 1.0.  The
         Unicode Consortium, Addison-Wesley, Reading, MA, 1991.

         Dostępny jest już  Unicode  1.1.4.   Zmiany  w  stosunku  do  książki
         [opisującej]  1.0  są dostępne na ftp://ftp.unicode.org.  Unicode 2.0
         zostanie opublikowany w postaci książkowej w 1996.

       * S. Harbison, G. Steele. C  -  A  Reference  Manual.  Fourth  edition,
         Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.

         Dobra  książka-informator  języka  programowania  C.  Czwarte wydanie
         obejmuje także 1 Poprawkę do standardu C ISO  (ISO/IEC  9899:1990)  z
         1994,  która dodaje znaczną liczbę nowych funkcji bibliotecznych C do
         obsługi wielobajtowych zestawów znaków.

BŁĘDY

       W czasie pisania tej strony man obsługa  UCS  w  Linuksowej  libc  była
       daleka od kompletnej.

AUTOR

       Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>

ZOBACZ TAKŻE

       utf-8(7)

INFORMACJE O TŁUMACZENIU

       Powyższe   tłumaczenie   pochodzi   z   nieistniejącego   już  Projektu
       Tłumaczenia Manuali i moe nie by aktualne. W razie zauważenia  różnic
       między powyższym opisem a rzeczywistym zachowaniem opisywanego programu
       lub funkcji, prosimy o zapoznanie się z oryginalną  (angielską)  wersją
       strony podręcznika.