Provided by: manpages-pl_4.19.0-7_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").

       The nl_langinfo(CODESET) function returns the name  of  the  selected  encoding.   Library
       functions  such  as  wctomb(3)   and  mbsrtowcs(3)   can be used to transform the internal
       wchar_t characters and strings into the system character encoding and back and  wcwidth(3)
       tells how many positions (0–2) the cursor is advanced by the output of a character.

   Obszar prywatny - PUA (ang. Private Use Areas)
       In  the Basic Multilingual Plane, the range 0xe000 to 0xf8ff will never be assigned to any
       characters by the standard and is reserved for private usage.  For  the  Linux  community,
       this private area has been subdivided further into the range 0xe000 to 0xefff which can be
       used individually by any end-user and the Linux zone in the range 0xf000 to  0xf8ff  where
       extensions are coordinated among all Linux users.  The registry of the characters assigned
       to  the  Linux   zone   is   maintained   by   LANANA   and   the   registry   itself   is
       Documentation/admin-guide/unicode.rst     in     the     Linux    kernel    sources    (or
       Documentation/unicode.txt before Linux 4.10).

       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, Geneva, 2000.

          This is the official specification of UCS.  Available from ⟨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)

TŁUMACZENIE

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

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.