Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       unicode - zunifikowany zestaw znaków

OPIS

       Międzynarodowy  standard  ISO/IEC  10646 definiuje międzynarodowy zestaw znaków - 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/IEC  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 /IEC 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/IEC
       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/IEC  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/IEC 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/IEC 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/IEC 10646-1:2000. Unicode 3.1 dodaje
       płaszczyzny uzupełniające z ISO/IEC 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 jest zarządzany przez LANANA, a
       sam  rejestr  jest  plikiem   Documentation/admin-guide/unicode.rst   w   źródłach   jądra   Linux   (lub
       Documentation/unicode.txt w wersji jądra starszej niż 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, 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)

TŁUMACZENIE

       Tłumaczenie  niniejszej strony podręcznika: 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.9.1                            2 maja 2024 r.                                       unicode(7)