Provided by:
manpages-cs_0.18.20090209-3_all 
JM'ENO
Unicode - univerzalni znakova sada
POPIS
Mezinarodni standard ISO 10646 definuje Universal Character Set (UCS).
UCS obsahuje vechny znaky vech kodovani znakovych sad. Navic garantuje
kompatibilitu zptn'e konverze, to jest je mono postavit konverzni
tabulky tak, aby nedochazelo ke ztrat informace pi konverzi z jineho
kodovani do UCS a zpt.
UCS obsahuje znaky potebne pro tem vechny zname jazyky. Mimo jine je to
mnoho jazyk vyuivajicich rozieni latinky a take nasledujici jazyky a
pisma: etinu, azbuku, hebrejtinu, arabtinu, armentinu, gruzintinu,
japontinu, intinu, korejske ideogramy Han, pisma Hiragana, Katakana,
Hangul, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu,
Kannada, Malayalam, thajtinu, Lao, Khmer, Bopomofo, tibettinu, runove
pismo, etioptinu, kanadske slabiky, Cherokee, mongoltinu, Ogham,
barmtinu, sinhaltinu, Thaana, Yi a mnoho jinych. Pracuje se na vloeni
dalich pisem jako hieroglyfy a rzne historicke indoevropske jazyky,
eventualn by mohly byt zalenny nktere umle jazyky, jako Tengwar, Cirth
a klingontina. UCS navic ke znakm pro tyto jazyky obsahuje graficke,
typograficke, matematicke a vdecke symboly pouivane nap. v TeXu,
PostScriptu, APL, MS-DOSu, MS-Windows, Macintosh, OCR, stejn tak jako v
mnoha systemech pro zpracovani textu a publikovani, ktere neustale
pibyvaji.
Kodovani UCS (ISO 10646) popisuje 31-bitovou znakovou sadu, sestavajici
ze 128 24-bitovych IR skupin , z nich kada je rozdlena do 256
16-bitovych planes(ploch), ktere se skladaji z 256 8-bitovych ad s 256
sloupci - pro kady znak jeden. ast 1 standardu (ISO 10646-1) definuje
prvnich 65534 kod (0x0000 a 0xfffd), tvoi tzv. Basic Multilingual
Plane (BMP), tj. plochu 0 ve skupin 0. ast 2 standardu (ISO 10646-2)
dopluje znaky do skupiny 0 mimo BMP v nkolika doplkov'ych ploch'ach v
rozsahu 0x100000 a 0x10ffff. Doplnni znak nad 0x10ffff se neplanuje, z
celeho kodoveho prostoru skupiny 0 bude tedy v dohledne budoucnosti
vyuita pouze mala ast. BMP obsahuje vechny znaky, obsaene v obvykle
uivanych znakovych sadach. Doplkove plochy doplnne v ISO 10646-2
zahrnuji pouze exoticke znaky pro zvlatni vdecke pouiti, tisk slovnik,
publikovani, vysokourovove protokoly a nadence.
Reprezentaci kadeho UCS znaku jako dvoubajtoveho slova se ika UCS-2
forma (jen pro znaky z BMP), zatimco UCS-4 je reprezentace kadeho znaku
tybajtovym slovem. Navic existuji dv formy kodovani: UTF-8 pro zptnou
kompatibilitu s programy zpracovavajicimi ASCII a UTF-16 pro zptn
kompatibilni zpracovani znak mimo BMP a do 0x10ffff programy
pouivajicimi UCS-2.
Kodovani UCS pro znaky mezi 0x0000 a 0x007f je totone s bnou sadou
US-ASCII a znaky mezi 0x0000 a 0x00ff jsou totone se sadou ISO 8859-1
Latin-1.
Spojov'an'i znak
Nktere kody v UCS jsou piazeny tzv. akcentm. Tyto jsou podobne
neposouvajicim znakm na psacim stroji. Akcent modifikuje pedchozi znak.
Nejdleitji znaky s akcenty sice maji sve vlastni kody v UCS, ale
akcentove znaky dovoluji pidat libovolne diakriticke znamenko k
libovolnemu znaku. Akcent vdy nasleduje znak, ktery je modifikovan.
Napiklad, nmecky znak Umlaut-A ("Velke A v latince s umlautem") me byt
reprezentovan pomoci kodu UCS 0x00c4 a nebo alternativn jako kombinace
normalniho velkeho A, nasledovaneho akcentem umlaut: 0x0041 0x0308.
Akcenty jsou nezbytne nap. pro thajske pismo, pro matematicke tisky a
pro uivatele Mezinarodni foneticke abecedy.
'Urovn implementace
Protoe se neoekava,e vechny systemy budou podporovat vechny varianty
kodovani, ISO 10646-1 definuje nasledujici ti 'urovn implementace UCS:
Level 1 Akcenty a znaky Hanghul Jamo (specialni, komplikovane kodovani
korejskeho pisma, kde jsou jednotlive symboly dany jako
sekvence dvou i ti znak) nejsou podporovany.
Level 2 Jako level 1, piem nktere kombinujici znaky jsou povoleny
(nap. pro thajtinu, Lao, hebrejtinu, arabtinu, Devangari,
Malayalam atd.
Level 3 Vechny znaky z UCS jsou povoleny.
Standard Unicode 3.0 publikovany Unicode Consorciem sestava pesn z UCS
Basic Multilingual Plane na urovni implementace level 3, definovane v
ISO 10646-1:2000. Unicode 3.1 pidava doplkove plochy z ISO 10646-2.
Standard Unicode a technicke zpravy, ktere Unicode Consotium publikuje,
obsahuji mnoho dodatenych informaci o semantice a doporuenych pouitich
rznych znak. Poskytuji voditka a algoritmy pro editovani, tidni,
porovnavani, normalizovani, konverzi a zobrazovani Unicode etzc.
Unicode pod Linuxem
V GNU/Linuxu je datovy typ jazyka C wchar_t definovan jako 32 bitovy
integer. Knihovna jazyka C jeho hodnoty vdy interpretuje jako kodove
hodnoty UCS (ve vech locale), co je konvence, kterou GNU knihovna
jazyka C oznamuje aplikacim definovanim konstanty __STDC_ISO_10646__,
tj. tak, jak to uruje standard ISO C99.
UCS/Unicode me byt, stejn jako ASCII, pouivano ve vstupnich a
vystupnich proudech, terminalove komunikaci, souborech prosteho textu,
nazvech soubor a promnnych prostedi prostednictvim ASCII kompatibilniho
vicebajtoveho kodovani UTF-8. K uivani UTF-8 jako kodovani znak pro
vechny aplikace je teba vybrat vhodne locale pomoci promnnych prostedi
(nap. "LANG=en_GB.UTF-8").
Funkce nl_langinfo(CODESET) vraci nazev zvoleneho kodovani. Knihovni
funkce jako wctomb(3) a mbsrtowcs(3) mohou byt pouity ke konverzi
interniho typu wchar_t do kodovani pouivaneho systemem a naopak.
Funkce wcwidth(3) ika, kolik o pozic (0-2) postoupil kurzor po vytitni
znaku.
V Linuxu je obecn pouivana pouze BMP Level 1. Nktere UTF-8 emulatory
terminal a ISO 10646 fonty (level 2) podporuji a dva akcenty pro jeden
zakladni znak u nkterych pisem (zejm. thajtina), ale obecn by tam, kde
je to mone, mly byt upednostovany znaky s vlastnimi kody. (Unicode to
nazyva Normalization Form C).
Vyhrazen'a oblast
Kody BMP, v intervalu 0xe000 do 0xf8ff nikdy nesmji byt definovany
standardem a jsou vyhrazeny pro privatni pouiti. Pro uivatele Linuxu je
tato oblast rozdlena na interval od 0xe000 do 0xefff, ktery je uren pro
individualni pouiti a tzv. Linuxovou zonu od 0xf000 do 0xf8ff, kde jsou
rozieni definovana pro vechny instalace Linuxu. Tato rozieni jsou
registrovana (v souasne 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 oficialni 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.
Dobra referenni kniha o jazyku C. tvrte vydani take zahrnuje dodatek
1 z roku 1994 ke standardu ISO C 90, ktery pidava mnoho knihovnich
funkci pro praci s wide-byte a multi-byte kodovanimi, ale jet
nezahrnuje ISO C99, ktere dale zlepilo podporu tchto kodovani.
* Technicke zpravy 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 pipojit ke e-mailove konferenci
linux-utf8, co je nejlepi misto pro hledani rady ohledn uivani
Unicode v Linuxu.
* Bruno Haible: Unicode HOWTO.
ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html
CHYBY
V dob psani tohoto manualu byla podpora v Linux libc pro UTF-8 locales
hotova a podpora v XFree86 byla v pokroilem stadiu, ale prace na tvorb
aplikaci (zejm. editor) vhodnych pro pouiti v UTF-8 locale jet
probihaly. Souasna obecna podpora UCS v Linuxu obvykle zahrnuje CJK
znaky s dvojitou ikou a nkdy i jednoduche akcenty, ale vtinou
nezahrnuje podporu pro pisma, ktera se pii zprava doleva nebo poadavky
na ligature substitution, jako nap. hebrejtina, arabtina nebo indicka
pisma. Tato pisma jsou v souasnosti podporovana pouze v nkterych GUI
aplikacich (prohliee HTML, textove procesory) obsahujicich
sofistikovane nastroje pro vykreslovani textu.
DAL'I INFORMACE
setlocale(3), charsets(7), utf-8(7)
TIR'A
Tato stranka je souasti projektu Linux man-pages. Popis projektu a
informace o hlaeni chyb najdete na
http://www.kernel.org/doc/man-pages/.