focal (7) unicode.7.gz

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.