Kódování češtiny a kódování Unicode
Kdysi byl svět velmi velké místo a člověk si nemohl dělat naději, že aby alespoň malou část byl s to za svůj život navštívit. (Viz F.L. Věk a jeho třídenní cesta do Prahy). S příchodem nových dopravních prostředků se stal světem menším, ale ta správná miniaturizace nastala teprve s "vynálezem" Internetu. Nyní v rámci jednoho serveru -- a jedné návštěvy -- mohou sousedit stránky pocházející ze zemí ležících třeba na opačné polokouli. Podobné změny v minulosti vždy vedly k zásadním změnám ve společnosti, a stejně tak měly dopad na míchání národností, jazyků a vůbec změnu pohledu "uživatelů" na svět. Zatímco v renesanční Evropě znamenaly Benátky pupek světa a znalost italštiny či vlámštiny byla pro každého řemeslníka nezbytná, dnes se do naprosto dominantní pozice dostala angličtina. Nejen že je v řadě zemí úředním jazykem, ale stává se také mateřským jazykem techniků a programátorů. Není proto divu, že taktéž naprosto převládá na www stránkách, kde je dnes zřejmě tím nejuniverzálnějším "kódováním", a dokud se do hry plně nezapojí země jako Čína, bude určitě přes 90 % stránek v tomto jazyce. Angličtina by ovšem neměla potlačovat národní kultury a rodné jazyky, na toto téma určitě není třeba argumentovat. Problém je v podpoře odlišných kulturních zvyklostí v internetových formátech a na operačních systémech vůbec. Problém je to závažnější, než se nezkušenému uživateli může jevit. Pokud řekněme v našich reáliích vlastní kompletně zlokalizované Windows a aplikační software, a s okolím komunikuje spíše méně než více, nemusí možná nějakou dobu narazit na nějaké postřehnutelné problémy. Realita je ovšem poněkud jiná. Většina dnešního softwaru vzniká v zemích používajících angličtinu jako komunikační jazyk a autoři si často vůbec nedělají hlavu s podporou jiných jazyků. Dříve, kdy byly softwarové trhy více separované, to příliš nebolelo. Dnes je situace jiná. A naštěstí i pro obchodníky, pro něž se otevírají nové trhy v Evropě i Asii. V obou případech řada zemí používá znakové sady, které jsou značně odlišné od románských jazyků. A nejde jen o znaky, jsou zde i výrazné odchylky od způsobu třídění, při rozdělování slov, přičemž všechny tyto rozdíly by měly být počítači zřejmé. Nejmarkantnější je to samozřejmě u piktografických písmen, jako japonština či čínština, pro problémy ovšem nemusíme zacházet tak daleko. Stačí se podívat na způsoby kódování češtiny, používané v dokumentech a hlavně na www stránkách. Na úvodních stránkách většinou nalezneme nějakou formu mnohapolohového přepínače, který po volbě aktivuje jednodušší či složitější formou přepnutí do stránek v požadované podobě. Častým výchozím reprezentantem kódování stránek je přitom "šišlavá čeština", kde autoři (a nejen u nás) zneužívají toho, že mimo písmenek s diakritikou můžeme všechna písmena nalézt v anglické abecedě. To je samozřejmě naprosto absurdní přístup, který můžeme vysvětlit jen naprostou nekulturností původců. Podobné jevy by se měly s veškerou rozhodností potlačovat -- pokud neakceptujeme v textech ypsilon namísto měkkých "i", není důvodu, proč bychom měli číst texty, kde se jejich autor nenamáhal používat háčky a čárky. To samozřejmě není všechno. Protože řada programů prostě s neanglickými jazyky nepočítá, neumí je ani korektně používat. Pokud tedy uživatel na výrobu www stránek použije program typu Adobe PageMill, který prostě česká písma na PC ani na Macovi nepodporuje, výsledek tomu bude odpovídat. Další chybou je potom ve zdrojovém textu typ kódování jazyky neuvést. Většina www prohlížečů se dnes dokáže do odpovídajícího jazyka přepnout automaticky, samozřejmě ale jen pokud má k tomu podklady. Unicode Jak však již padla zmínka, při otevírání se nových trhů a typickém prodeji softwaru mimo území výrobce, stoupá zájem programátorů o podporu jiných jazykových struktur. Roztříštění světa do tolika platforem, to ovšem ani při dobré vůli není jednoduchý problém. Používá se celá řada standardů/skriptů -- ASCII pro americkou angličtinu, JIS pro japonštinu, GB- Codep pro "čínskou čínštinu", Big-5 pro "tchaiwanskou čínštinu", KS-code pro korejštinu, ISCII pro indické dialekty atd. Ostatně jen v České republice se jich používá čtveřice -- Latin 2, Kameničtí, Windows EE a Mac OS CE. A nic si nenamlouvejme, slovem používá myslíme skutečné používání, ne jen výskyt v archivech. Jak je zřejmé, jen samotných variací znakových sad je velké množství a pro jejich popis běžně používaný 8bitový standard se svými 256znakovými pozicemi prostě nemůže stačit. Postup by měl být zjevný -- přidat dostatečný počet bitů pro popis a zajistit pokud možno standardizovaný přistup k jejich využití. Standardy to ovšem v našem světě nemají jednoduché (DVD by mohlo vyprávět). Řada 16bitových kódování konec konců existuje již dlouho, ale společného toho mají málo, snad jen to, že práce s nimi je noční můrou pro každého programátora -- např. protože některé znaky jsou široké jeden bajt, a některé pro změnu dva. Odpovědí by mělo být (a tento budoucí čas platí již pěkně dlouho) kódování Unicode. Je to standard, který v roce 1988 vyvinuly firmy Apple a Xerox. Od roku 1991 potom existuje konsorcium 16 společností, které má za další vývoj specifikací zodpovídat. Unicode se snaží přinést jednoduchý a konzistentní způsob reprezentace textových řetězců. Všechny znaky jsou kódovány jako dva bajty -- přičemž tato reprezentace v 16 bitech umožňuje 65 536 kódových pozic. Tyto pozice jsou rozděleny do jazykových oblastí a skupin -- viz tabulka. Prostor je to dostatečný, v současnosti je ještě 29 000 pozic neobsazených a rezervovaných pro budoucí použití. 6 000 pozic je určeno pro libovolné použití autory programů. Výsledek by tedy měl být "svatý Grál" -- naprostá přenositelnost daného textového souboru mezi státy a různými počítači, bez ohledu na nainstalovaný operační a jazykový systém. To pochopitelně není totožné s překladem obsahu souboru, to je zase věc jiná. Mluvíme o tom, že určitý znakový kód bude vždy reprezentovat jeden jediný znak, který se nám možná nezobrazí, protože nebudeme mít odpovídající font, ale rozhodně nebude nahrazován jinými písmeny a komolit tak význam sdělení. Bohužel, jak už jistě každý vypozoroval, není jednoduché současný svět přinutit ke standardizaci. V dnešní době se s Unicodem můžeme setkat především na některých www stránkách -- povšimněte si, že postačí zvolit verzi Unicode, nikoliv jazykovou či národnostní oblast -- a nezbývá než doufat, že brzo budou takto zapsány všechny. Samozřejmě je to vždy otázka kompatibilních programů, které musí Unicode podporovat. Například Netscape Communicator (Navigator) je z hlediska podporování různých kódování zřejmě nejštědřejší a Unicode tu nalezneme zastoupený hned všemi postupně uvolněnými verzemi (1.2 se stane zřejmě tou "pravou" uspokojivou). Důležité ovšem je, aby Unicode podporovaly operační systémy, textové procesory a programy pro vytváření www stránek. Pro začátek je pochopitelně nejdůležitější začít s operačními systémy -- pokud bychom si přečetli nějaké původní články o Unicode, nalezneme zde plány "Unicode-compatible" verzí systému Mac OS, DOS, Windows atd., které by měly být dokončeny okolo roku 1993. Od té doby uběhlo takřka 5 let a nic z toho se nezrealizovalo. Podobné projekty znamenají příliš mnoho práce, takže ani u Windows 95, jež svůj původ v 16bitových Windows 3.1 nemohou popřít, nemůžeme podporu Unicode očekávat. Jinak je tomu u Windows NT, která plně od základu a začátku pracují s řetězci kódovanými v Unicode. V případě, že aplikace volá rozhraní WIN32 a předává mu jako parametry řetězce v ANSI či ASCII, jsou pro vlastní zpracování převedeny do Unicode. Je to tedy prováděno i za cenu jisté práce "navíc". Microsoft Office 97 pracuje taktéž s kódováním Unicode, i když podle některých komentářů není podpora východoasijských jazyků úplná. U softwaru platformy Macintosh je to slabší, možná proto, že tu vždy existovala maximální snaha o jeho lokalizaci regionálními zastoupeními Apple. To ovšem nic nemění na tom, že Mac OS až na Javu a několik dalších technologií Unicode nepodporuje, přestože firma Apple byla u jeho samotného zrodu, což je ovšem pro ni více než typické (viz Talligent, OpenDoc, FireWire...) Nicméně nový systém Rhapsody je postavený na NextStepu, a obdobně Windows NT Unicode plně podporovat bude -- zřejmě již v roce 1998. Ale i další systémy -- AIX 4.3 či OS/2 Merlin, již Unicode začaly používat -- zejména jazyk Java je tady velkým hnacím motorem. Jak se zdá, během následujících let Unicode pomalu najde cestu do všech systémů a aplikací. Lze také doufat, že pokud jej budou všechny dostupné prohlížeče podporovat, stane se standardem i pro české stránky, kde prozatím panuje skutečný chaos.
Jaroslav Zapletal Tabulkaoblast kódu<T>znaky 0000-007F<T>ASCII 0080-00FF<T>Znaky Latin 1 0100-017F<T>Evropská latinka 0180-01FF<T>Rozšířená latinka 0250-02AF<T>Standardní fonetické symboly 02B0-02FF<T>Modifikovaná písmena 0300-036F<T>Obecná diakritická znaménka 0370-03FF<T>Řečtina 0400-04FF<T>Azbuka 0530-058F<T>Arménština 0590-05FF<T>Hebrejština 0600-06FF<T>Arabština 0900-097F<T>Denavanágri (písmo pro Sanskrt a příbuzné jazyky)
|