Provided by: manpages-pl_0.7-1_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.

GNU                                                2016-03-15                                         UNICODE(7)