unicode

UNICODE(7)		 Linux - prirucka programatora		    UNICODE(7)



JMENO
       Unicode - sjednocena 16-bitova znakova sada

POPIS
       Mezinarodni  standard ISO 10646 definuje Universal Character Set (UCS).
       UCS obsahujici vsechny znaky vsech kodovani znakovych sad. Navic garan-
       tuje kompatibilitu zpetne konverze, to jest je mozno postavit konverzni
       tabulky tak, aby nedochazelo ke ztrate informace pri konverzi do UCS  a
       zpet.

       UCS  obsahuje  znaky potrebne pro temer vsechny zname jazyky. Mimo jine
       je to mnoho jazyku vyuzivajicich rozsireni latinky a  take  nasledujici
       jazyky  a  pisma:  rectinu, azbuku, hebrejstinu, arabstinu, armenstinu,
       gruzinstinu,  japonstinu,   cinstinu,   skripty	 Hiragana,   Katakana,
       korejstinu,  Hangul,  Devangari,	 Bengali,  Gurmukhi,  Gujarati, Oriya,
       Tamil, Telugu, Kannada, Malayam, Thai, Lao, Bopomofo, a	mnoho  jinych.
       Pracuje	se  na vlozeni dalsich pisem jako tibetskeho, khmerskeho, run,
       etiopskeho, hieroglyfu, ruznych indoevropskych jazyku a mnoha  dalsich.
       Pro  vetsinu  techto  pisem  nebylo v dobe vydani standardu v roce 1993
       jasne jake kodovani zvolit. Navic ke znakum pro tyto  jazyky  je	 treba
       jeste   pridat	mnoho	grafickych,  typografickych,  matematickych  a
       vedeckych symbolu pouzivanych napr. v TeXu, PostScriptu, MS-DOSu,  sada
       pocitacu	  Macintosh,   ve   Videotexu,	OCR,  stejne  tak  jako	 mnoho
       specialnich kodu, ktere garantuji zpetny preklad pro existujici znakove
       sady.

       Kodovani UCS (ISO 10646) popisuje 31-bitovou znakovou sadu, ackoli dnes
       se z ni pouziva pouze prvnich 65534 kodu (0x0000 to 0xfffd), ktere jsou
       nazvany	Basic  Multilingual  Plane (BMP), pricemz se ocekava, ze jenom
       velmi exoticke znaky, jako jsou napr.  hieroglyfy pro zvlastni  vedecke
       pouziti, budou kodovany mimo 16-bitovy interval.

       Kodovani	 UCS  pro znaky mezi 0x0000 a 0x007f je totozne s beznou sadou
       US-ASCII a znaky mezi 0x0000 a 0x00ff jsou totozne se sadou ISO	8859-1
       Latin-1

SPOJOVANI ZNAKU
       Nektere	kody  v	 UCS jsou prirazeny tzv.  akcentum.  Tyto jsou podobne
       neposouvajicim znakum  na  psacim  stroji.  Akcent  pridava  modifikuje
       predchozi  znak.	 Nejdulezitejsi	 znaky s akcenty sice maji sve vlastni
       kody v UCS, ale akcentove znaky dovoluji pridat	libovolne  diakriticke
       znamenko	 k  libovolnemu	 znaku.	 Akcent	 vzdy nasleduje znak, ktery je
       modifikovan.  Napriklad, nemecky znak Umlaut-A muze  byt	 reprezentovan
       pomoci  kodu  UCS  0x00c4 a nebo alternativne jako kombinace normalniho
       velkeho A, nasledovaneho akcentem umlaut: 0x0041 0x0308.

UROVNE IMPLEMENTACE
       Protoze	se  neocekava,ze  vsechny  systemy  budou  podporovat  vsechny
       varianty	 kodovani, ISO 10646 definuje nasledujici tri urovne implemen-
       tace UCS:

       Level 1	Akcenty a znaky Hanghul Jamo (specialni, komplikovane kodovani
		korejskeho  pisma,  kde	 jsou  jednotlive  symboly  dany  jako
		sekvence dvou ci tri znaku) nejsou podporovany.

       Level 2	Jako level 1, pricemz nektere kombinujici znaky jsou  povoleny
		(napr.	pro  hebrejstinu,  arabstinu, Devangari, Bengali, Gur-
		mukhi, Gujarati, Oriya,	 Tamil,	 Telugo,  Kannada,  Malayalam,
		Thai a Lao).

       Level 3	Vsechny znaky z UCS jsou povoleny.

       Standard	 Unicode  1.1  publikovany Unicode Consorciem sestava presne z
       UCS Basic Multilingual Plane na urovni implementace level 3, definovane
       v  ISO 10646. Unicode 1.1 take pridava definice pro nektere znaky z ISO
       10646.

UNICODE POD LINUXEM
       Operacni system Linux podporuje v teto chvili pouze BMP urovne  1,  pro
       zachovani  male	slozitosti  implementace.  Vyssi urovne jsou nutne pro
       specialni zpracovani textu, nikoli pro zakladni znakovou sadu.	Datovy
       typ jazyka C wchar_t je na Linuxu definovan jako 16 bitu bez znamenka a
       je interpretovan jako UCS level 1 BMP kody.

       Nastaveni locale urcuje jake je systemove kodovani znaku, napr.	 UTF-8
       nebo  ISO  8859-1.   Knihovni  funkce jako wctomb, mbtowc, nebo wprintf
       mohou byt  pouzity  jako	 (oboustranne)	konverzni  do  interniho  typu
       wchar_t pro znaky i retezce.

VYHRAZENA OBLAST
       Kody  BMP,  v  intervalu	 0xe000 do 0xf8ff nikdy nesmeji byt definovany
       standardem a jsou vyhrazeny pro privatni pouziti. Pro uzivatele	Linuxu
       je  tato	 oblast	 rozdelena  na	interval od 0xe000 do 0xefff, ktery je
       urcen pro individualni pouziti a	 tzv.  Linuxovou  zonu	od  0xf000  do
       0xf8ff,	kde  jsou  rozsireni  definovana pro vsechny instalace Linuxu.
       Tato rozsireni jsou registrovana (v soucasne dobe)   H.	Peter  Anvinem
       <Peter.Anvin@linux.org>,	 Yggdrasil Computing, Inc. Momentalne obsahuje
       nektere graficke znaky z terminalu DEC VT100, ktere  v  Unicode	chybi,
       dale  je	 zde primy vystup na font na konzoli a nektere znaky pro pismo
       Klingonu.

LITERATURA
       * Information technology - Universal Multiple-Octet Coded Character Set
	 (UCS)	- Part 1: Architecture and Basic Multilingual Plane.  Interna-
	 tional Standard ISO 10646-1, International Organization for  Standar-
	 dization, Geneva, 1993.

	 Toto  je  oficialni specifikace UCS.  Velmi oficialni, velmi tlusta a
	 velmi draha. Lze objednat na www.iso.ch.

       * The Unicode Standard - Worldwide Character Encoding Version 1.0.  The
	 Unicode Consortium, Addison-Wesley, Reading, MA, 1991.

	 V  soucasne dobe je jiz k dispozici Unicode 1.1.4. Zmeny od verze 1.0
	 lze najit na ftp.unicode.org. Unicode 2.0 bude publikovano jako kniha
	 v roce 1996.

       * S. Harbison, G. Steele. C - A Reference Manual. Fourth edition, Pren-
	 tice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.

	 Dobra referencni kniha o jazyku C. Ctvrte vydani take zahrnuje	 doda-
	 tek  (ISO/IEC	9899:1990), ktery definuje mnoho knihovnich funkci pro
	 praci vetsi znakovou sadou.

CHYBY
       V dobe psani tohoto manualu, podpora Linux libc pro  UCS	 neni  zdaleka
       hotova.

AUTOR
       Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>

VIZ TEZ
       utf-8(7)



Linux			       17. cervence 1998		    UNICODE(7)

Personal Tools