Provided by: manpages-cs_0.17.20080113-1_all bug

JMÉNO

       Unicode - sjednocená 16-bitová znaková sada

POPIS

       Mezinárodní  standard ISO 10646 definuje Universal Character Set (UCS).
       UCS  obsahuje  všechny  znaky  všech  kódování  znakových  sad.   Navíc
       garantuje  kompatibilitu  zpětné  konverze,  to  jest je možno postavit
       konverzní tabulky tak, aby nedocházelo ke ztrátě informace při konverzi
       z jiného kódování do UCS a zpět.

       UCS  obsahuje  znaky potřebné pro téměř všechny známé jazyky. Mimo jiné
       je to mnoho jazyků využívajících rozšíření latinky a  také  následující
       jazyky  a  písma:  řečtinu, azbuku, hebrejštinu, arabštinu, arménštinu,
       gruzínštinu,  japonštinu,  čínštinu,  korejské  ideogramy  Han,   písma
       Hiragana,  Katakana,  Hangul,  Devangari,  Bengali, Gurmukhi, Gujarati,
       Oriya,  Tamil,  Telugu,  Kannada,  Malayalam,  thajštinu,  Lao,  Khmer,
       Bopomofo,  tibetštinu,  runové  písmo,  etiopštinu,  kanadské  slabiky,
       Cherokee, mongolštinu, Ogham,  barmštinu,  sinhálštinu,  Thaana,  Yi  a
       mnoho  jiných.   Pracuje  se na vložení dalších písem jako hieroglyfy a
       různé historické indoevropské jazyky, eventuálně by mohly být začleněny
       některé umělé jazyky, jako Tengwar, Cirth a klingonština.  UCS navíc ke
       znakům pro tyto jazyky obsahuje grafické, typografické,  matematické  a
       vědecké  symboly používané např. v TeXu, PostScriptu, APL, MS-DOSu, MS-
       Windows,  Macintosh,  OCR,  stejně  tak  jako  v  mnoha  systémech  pro
       zpracování textu a publikování, které neustále přibývají.

       Kódování UCS (ISO 10646) popisuje 31-bitovou znakovou sadu, sestávající
       ze 128 24-bitových IR skupin ,  z  nichž  každá  je  rozdělena  do  256
       16-bitových planes(ploch), které se skládají z 256 8-bitových ad s 256
       sloupci - pro každý znak jeden. Část 1 standardu (ISO 10646-1) definuje
       prvních  65534  kódů (0x0000 až 0xfffd), tvoří tzv.  Basic Multilingual
       Plane (BMP), tj. plochu 0 ve skupině 0. Část 2 standardu (ISO  10646-2)
       doplňuje  znaky do skupiny 0 mimo BMP v několika doplkovch plochch v
       rozsahu 0x100000 až 0x10ffff. Doplnění znaků nad 0x10ffff se neplánuje,
       z  celého  kódového prostoru skupiny 0 bude tedy v dohledné budoucnosti
       využita pouze malá část. BMP obsahuje všechny znaky, obsažené v obvykle
       užívaných  znakových  sadách.  Doplňkové  plochy doplněné v ISO 10646-2
       zahrnují pouze  exotické  znaky  pro  zvláštní  vědecké  použití,  tisk
       slovníků, publikování, vysokoúrovňové protokoly a nadšence.

       Reprezentaci  každého  UCS znaku jako dvoubajtového slova se říká UCS-2
       forma (jen pro znaky z BMP),  zatímco  UCS-4  je  reprezentace  každého
       znaku  čtyřbajtovým  slovem.   Navíc existují dvě formy kódování: UTF-8
       pro zpětnou kompatibilitu s programy zpracovávajícími  ASCII  a  UTF-16
       pro  zpětně  kompatibilní  zpracování  znaků  mimo  BMP  až do 0x10ffff
       programy používajícími UCS-2.

       Kódování UCS pro znaky mezi 0x0000 a 0x007f je totožné s  běžnou  sadou
       US-ASCII  a znaky mezi 0x0000 a 0x00ff jsou totožné se sadou ISO 8859-1
       Latin-1.

   Spojování znaků
       Některé kódy v UCS jsou přiřazeny tzv.  akcentům.   Tyto  jsou  podobné
       neposouvajícím  znakům  na  psacím  stroji. Akcent modifikuje předchozí
       znak. Nejdůležitější znaky s akcenty sice mají své vlastní kódy v  UCS,
       ale  akcentové  znaky  dovolují přidat libovolné diakritické znaménko k
       libovolnému znaku. Akcent vždy následuje znak,  který  je  modifikován.
       Například,  německý znak Umlaut-A ("Velké A v latince s umlautem") může
       být reprezentován pomocí kódu  UCS  0x00c4  a  nebo  alternativně  jako
       kombinace  normálního  velkého A, následovaného akcentem umlaut: 0x0041
       0x0308.

       Akcenty jsou nezbytné např. pro thajské písmo, pro matematické tisky  a
       pro uživatele Mezinárodní fonetické abecedy.

   Úrovně implementace
       Protože  se  neočekává,že  všechny  systémy  budou  podporovat  všechny
       varianty  kódování,  ISO  10646-1  definuje  následující   tři   rovn
       implementace UCS:

       Level 1  Akcenty a znaky Hanghul Jamo (speciální, komplikované kódování
                korejského  písma,  kde  jsou  jednotlivé  symboly  dány  jako
                sekvence dvou či tří znaků) nejsou podporovány.

       Level 2  Jako  level 1, přičemž některé kombinující znaky jsou povoleny
                (např. pro thajštinu, Lao, hebrejštinu, arabštinu,  Devangari,
                Malayalam atd.

       Level 3  Všechny znaky z UCS jsou povoleny.

       Standard  Unicode  3.0  publikovaný Unicode Consorciem sestává přesně z
       UCS Basic Multilingual Plane na úrovni implementace level 3, definované
       v  ISO  10646-1:2000.   Unicode  3.1  přidává  doplňkové  plochy  z ISO
       10646-2. Standard Unicode a technické zprávy, které  Unicode  Consotium
       publikuje,   obsahují   mnoho   dodatečných  informací  o  semantice  a
       doporučených použitích různých znaků. Poskytují vodítka a algoritmy pro
       editování,  třídění, porovnávání, normalizování, konverzi a zobrazování
       Unicode řetězců.

   Unicode pod Linuxem
       V GNU/Linuxu je datový typ jazyka C wchar_t definován  jako  32  bitový
       integer.  Knihovna  jazyka C jeho hodnoty vždy interpretuje jako kódové
       hodnoty UCS (ve všech locale), což je  konvence,  kterou  GNU  knihovna
       jazyka  C  oznamuje aplikacím definováním konstanty __STDC_ISO_10646__,
       tj. tak, jak to určuje standard ISO C99.  UCS/Unicode může být,  stejně
       jako  ASCII,  používáno ve vstupních a výstupních proudech, terminálové
       komunikaci, souborech prostého  textu,  názvech  souborů  a  proměnných
       prostředí  prostřednictvím  ASCII kompatibilního vícebajtového kódování
       UTF-8.  K užívání UTF-8 jako kódování znaků  pro  všechny  aplikace  je
       třeba   vybrat   vhodné   locale  pomocí  proměnných  prostředí  (např.
       "LANG=en_GB.UTF-8").

       Funkce nl_langinfo(CODESET) vrací název  zvoleného  kódování.  Knihovní
       funkce  jako  wctomb(3)  a  mbsrtowcs(3)  mohou být použity ke konverzi
       interního typu wchar_t  do  kódování  používaného  systémem  a  naopak.
       Funkce  wcwidth(3)  říká,  kolik  o  pozic  (0-2)  postoupil  kurzor po
       vytištění znaku.

       V Linuxu  je  obecně  používána  pouze  BMP  Level  1.   Některé  UTF-8
       emulátory  terminálů  a  ISO  10646  fonty  (level  2) podporují až dva
       akcenty pro jeden základní znak u některých  písem  (zejm.  thajština),
       ale  obecně  by  tam, kde je to možné, měly být upřednostňovány znaky s
       vlastními kódy.  (Unicode to nazývá Normalization Form C).

   Vyhrazená oblast
       Kódy BMP, v intervalu 0xe000 do 0xf8ff  nikdy  nesmějí  být  definovány
       standardem  a jsou vyhrazeny pro privátní použití. Pro uživatele Linuxu
       je tato oblast rozdělena na interval od  0xe000  do  0xefff,  který  je
       určen  pro  individuální  použití  a  tzv.  Linuxovou zónu od 0xf000 do
       0xf8ff, kde jsou rozšíření definována  pro  všechny  instalace  Linuxu.
       Tato  rozšíření  jsou  registrována  (v současné době) H. Peter Anvinem
       <Peter.Anvin@linux.org>.

   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.

         Toto  je  oficiální specifikace UCS.  Lze objednat jako PDF soubor na
         CD-ROM 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.

         Dobrá referenční kniha  o  jazyku  C.  Čtvrté  vydání  také  zahrnuje
         dodatek  1  z  roku  1994  ke standardu ISO C 90, který přidává mnoho
         knihovních funkcí pro práci s wide-byte a multi-byte kódováními,  ale
         ještě   nezahrnuje  ISO  C99,  které  dále  zlepšilo  podporu  těchto
         kódování.

       * Technické zprávy Unicode.
         http://www.unicode.org/unicode/reports/

       * Markus Kuhn: UTF-8 and Unicode FAQ for Unix/Linux.
         http://www.cl.cam.ac.uk/~mgk25/unicode.html

         Obsahuje informace, jak se připojit ke  e-mailové  konferenci  linux-
         utf8,  což je nejlepší místo pro hledání rady ohledně užívání Unicode
         v Linuxu.

       * Bruno Haible: Unicode HOWTO.
         ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html

CHYBY

       V době psaní tohoto manuálu byla podpora v Linux libc pro UTF-8 locales
       hotova  a  podpora  v  XFree86  byla  v pokročilém stadiu, ale práce na
       tvorbě aplikací (zejm. editorů) vhodných pro  použití  v  UTF-8  locale
       ještě  probíhaly. Současná obecná podpora UCS v Linuxu obvykle zahrnuje
       CJK znaky s dvojitou šířkou a někdy i jednoduché akcenty, ale  většinou
       nezahrnuje  podporu  pro  písma,  která  se  píší  zprava  doleva  nebo
       požadavky na ligature substitution, jako např.  hebrejština,  arabština
       nebo  indická  písma. Tato písma jsou v současnosti podporována pouze v
       některých  GUI  aplikacích   (prohlížeče   HTML,   textové   procesory)
       obsahujících sofistikované nástroje pro vykreslování textu.

VIZ TÉŽ

       setlocale(3), charsets(7), utf-8(7)

TIRÁŽ

       Tato  stránka  je  součástí projektu Linux man-pages.  Popis projektu a
       informace o  hlášení  chyb  najdete  na  http://www.kernel.org/doc/man-
       pages/.