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

       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  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.

Linux man-pages 6.03                            5 lutego 2023 r.                                      unicode(7)