Provided by: manpages-pl_0.7-2_all bug

NAZWA

       unicode - zunifikowany zestaw 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  praktycznie  wszystkich  znanych  języków.
       Obejmuje   to  nie  tylko  pismo  łacińskie,  greckie,  hebrajskie,  arabskie,  armeńskie,
       gruzińskie i cyrylicę, lecz także ideogramy chińskie, japońskie oraz koreańskie  Han,  jak
       również   następujące:  hiragana,  katakana,  hangul,  dewanagari,  bengalskie,  gurmukji,
       gujarati, oriya, tamil, telugu, kannada,  malajlamski,  tajski,  lao,  kmerski,  bopomofo,
       tybetański,  runiczne, etiopskie, kanadyjskie sylabiczne, cherokee, mongolskie, oghamskie,
       myanmar, sinhala, thaana, yi i inne. Nad pismami, które nie zostały jeszcze  uwzględnione,
       trwają prace nad najlepszym ich zakodowaniem do użytku komputerowego i ostatecznie zostaną
       one dodane. Ujęte mogą zostać w końcu nie tylko hieroglify  i  różne,  historyczne  języki
       indoeuropejskie,  lecz  także  wybrane pisma artystyczne, jak tengwar, cirth i klingoński.
       UCS  obejmuje  również  wiele  symboli  graficznych,  typograficznych,  matematycznych   i
       naukowych,  dostarczanych  z  TeX-em,  PostScriptem,  APL-em,  MS-DOS-em, Macintoshem oraz
       fontami OCR i  wieloma innymi systemami przetwarzania tekstów, a wciąż dodawane są nowe.

       Standard UCS (ISO 10646) opisuje zestaw znaków o architekturze 31-bitowej  składający  się
       ze  128  24-bitowych  grup,  z  których  każda  dzieli  się  na 256 16-bitowych płaszczyzn
       złożonych z 256 8-bitowych wierszy z 256 kolumnami, po  jednej  na  każdy  znak.  Pierwsza
       część  standardu  (ISO 10646-1) definiuje pierwsze 65534 pozycji (0x0000 do 0xfffd), która
       składa się na podstawową płaszczyznę wielojęzyczną (BMP) - ang. Basic Multilingual  Plane,
       która  jest 0. płaszczyzną w grupie 0. Druga część standardu (ISO 10646-2) dodaje znaki do
       grupy zerowej poza BMP w wielu płaszczyznach uzupełniających, w  zakresie  od  0x10000  do
       0x10ffff.  Nie  istnieją plany dodawania znaków poza  0x10ffff do standardu, zatem z całej
       przestrzeni kodu jedynie niewielka część grupy 0. może być kiedykolwiek faktycznie użyta w
       przewidywalnej przeszłości. BMP zawiera wszystkie znaki, które można znaleźć powszechnie w
       innych zestawach znaków. Płaszczyzny uzupełniające, dodane w ISO 10646-2 obejmują  jedynie
       bardziej  egzotyczne  znaki  o  specjalnym  zastosowaniu  naukowym,  do wydruku słowników,
       wydawnictw, wysokopoziomowych protokołów i potrzeb entuzjastów.

       Reprezentacja każdego znaku UCS jako 2-bajtowe słowo jest nazywana postacią  UCS-2  (tylko
       znaki  BMP),  podczas  gdy  UCS-4  jest  reprezentacją każdego znaku jako słowo 4-bajtowe.
       Dodatkowo, istnieją dwie postacie kodowania: UTF-8  w  celu  kompatybilności  wstecznej  z
       programami  przetwarzającymi ASCII i UTF-16, w celu kompatybilnej obsługi znaków spoza BMP
       - aż do 0x10ffff, przez programy UCS-2.

       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
       Latin-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 "Latin capital letter A" i "combining diaeresis": 0x0041
       0x0308.

       Znaki składające są istotne na przykład do kodowania pisma tajskiego lub do składu  zapisu
       matematycznego oraz użytkowników międzynarodowego alfabetu fonetycznego (IPA).

   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-1  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 Oprócz zastrzeżeń poziomu 1, obsługiwane są znaki składające w przypadku języków,
                dla których są one istotne (np.  tajski,  lao,  hebrajski,  arabski,  dewanagari,
                malajski).

       Poziom 3 Obsługiwane są wszystkie znaki UCS.

       Unicode  3.0  Standard  opublikowany  przez Unicode Consortium zawiera dokładnie UCS Basic
       Multilingual Plane (płaszczyznę podstawową) w poziomie  implementacji  3,  zgodnie  z  ISO
       10646-1:2000. Unicode 3.1 dodaje płaszczyzny uzupełniające z ISO 10646-2. Standard Unikodu
       i dokumenty techniczne opublikowane przez Unicode Consortium zawierają  wiele  dodatkowych
       informacji  o  semantyce  i  zalecanym  użyciu  różnych  znaków.  Dostarczają  wskazania i
       algorytmy  do  edytowania,  sortowania,  porównywania,  normalizowania,  konwertowania   i
       wyświetlania łańcuchów Unikodu.

   Unikod w systemie Linux
       W  systemie  GNU/Linux,  typ  C wchar_t jest 32-bitową liczbą typu integer ze znakiem. Jej
       wartość są interpretowane przez bibliotekę C, zawsze jako wartości kodu UCS (we wszystkich
       ustawieniach  locale), a ta konwencja jest sygnalizowana przez bibliotekę GNU C w stosunku
       do aplikacji, przez zdefiniowane stałej __STDC_ISO_10646__, zgodnie ze standardem ISO C99.

       UCS/Unikod  może  być  używany  identycznie  jak  ASCII  w   łańcuchach   wejścia/wyjścia,
       komunikacji  terminalowej, plikach tekstowych, nazwach plików i zmiennych środowiskowych w
       wielobajtowym kodowaniu UTF-8 kompatybilnym z ASCII. Aby zasygnalizować używanie kodowania
       znaków  UTF-8  wszystkim  aplikacjom, należy wybrać odpowiednie locale za pomocą zmiennych
       środowiskowych (np. "LANG=pl_PL.UTF-8").

       Funkcja nl_langinfo(CODESET) zwraca nazwę wybranego kodowania. Funkcje biblioteczne, takie
       jak  wctomb(3)  i  mbsrtowcs(3)  mogą być używane do przekształcenia wewnętrznych znaków i
       łańcuchów wchar_t na kodowanie znaków systemowych i z powrotem,  a  wcwidth(3)  informuje,
       jak wiele pozycji (0–2) kursor przesunął się przez wyświetlenie znaku.

   Obszar prywatny - PUA (ang. Private Use Areas)
       W  Basic Multilangual Plane, 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>

       Kolejne dwie płaszczyzny zarezerwowane do użytku prywatnego to płaszczyzna  15  (dodatkowy
       obszar  użytku prywatnego A - ang. Supplementary Private Use Area-A, w zakresie 0xf0000 do
       0xffffd) oraz 16 (dodatkowy obszar użytku prywatnego B - ang.  Supplementary  Private  Use
       Area-B, w zakresie 0x100000 do 0x10fffd).

   Literatura
       *  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, Genewa, 2000.

          Jest to oficjalna specyfikacja UCS. Dostępna z ⟨http://www.iso.ch/⟩.

       *  The  Unicode  Standard,  Version 3.0.  The Unicode Consortium, Addison-Wesley, Reading,
          MA, 2000, ISBN 0-201-61633-5.

       *  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  ISO  C90,  która  dodaje   znaczną   liczbę   nowych   funkcji
          bibliotecznych  C  do  obsługi  szerokich  i   wielobajtowych  zestawów znaków, ale nie
          opisuje  ISO  C99,  jeszcze  bardziej  poprawiającej   obsługę   znaków   szerokich   i
          wielobajtowych.

       *  Unicode Technical Reports.
          ⟨http://www.unicode.org/reports/⟩

       *  Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux.
          ⟨http://www.cl.cam.ac.uk/~mgk25/unicode.html⟩

       *  Bruno Haible: Unicode HOWTO.
          ⟨http://www.tldp.org/HOWTO/Unicode-HOWTO.html

ZOBACZ TAKŻE

       locale(1), setlocale(3), charsets(7), utf-8(7)

O STRONIE

       Angielska  wersja  tej  strony  pochodzi  z  wydania  4.05  projektu Linux man-pages. Opis
       projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą  wersję  oryginału  można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej strony podręcznika man są: Gwidon S. Naskrent
       (PTM) <naskrent@hoth.amu.edu.pl> i Michał Kułach <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   4.05
       oryginału.