Bože, chraň nás před našimi programátory
Samozřejmě - na různých počítačích a v různých programových produktech se používá odlišné zakódování znaků s diakritikou do osmibitové posloupnosti. V době, kdy se u nás začaly počítače propojovat do Internetu, nikdo administrativně nerozhodl, který kód bude v české části Internetu používán. (Počítače s jiným kódem by pak stačilo doplnit jedním konverzním programem.) Takovýmto rozhodnutím by se snad bývalo mohlo stát, že z naprosté neznalosti by někdo vybral takový kód, který se prakticky nepoužívá. A potom by na tom byli všichni producenti softwaru stejně. Asi proto se dnes u nás nemůžeme dohodnout na jednom preferovaném (již používaném) kódu češtiny, protože jen někteří by pak měli nevýhodu v tom, že by museli své programy doplnit o konverzní moduly.
A tak sice češtinu po Internetu úspěšně přeneseme, ale občas je text interpretován ještě hůře, než kdyby byl jen bez háčků a čárek. Koncepci Internetu (i jednoduchosti algoritmu) by nejlépe vyhovovalo, kdyby konverzi bylo možno provádět až na počítači uživatele. Což také řada uživatelů s úspěchem využívá, ale vesměs v prostředích mimo Windows. Ovšem při práci (v grafickém režimu) s WWW je obvykle uživatel odkázán pouze na takovou kódovou nabídku, kterou mu poskytuje WWW-server. Nejjednodušším řešením je prostě situace, kdy stránky jsou již na WWW-serveru vícekrát, pokaždé v jiném kódu češtiny, a to včetně varianty bez háčků a čárek. Uživatel si pak sám vybere tu, která vyhovuje konfiguraci jeho počítače. V podstatě stejným způsobem řeší situaci programové nadstavby na straně WWW-serveru, které stránky před odesláním umějí překódovat. Stránky tak mohou být na serveru jen jednou, v kódu nejvýhodnějším pro jejich údržbu a tvorbu.
S rozvojem WWW se ale první verze 0.9 protokolu http, podle něhož si WWW-klient z WWW-serveru vyžaduje stránku, na kterou uživatel kliknul, změnila na variantu 1.0 a nejnověji na 1.1. A zde začalo velké trápení uživatelům, kteří u nás nějakým způsobem vybočují z řady. (Tedy nepoužívají poslední verzi programu Netscape nebo Internet Explorer a to na takové verzi Windows, kterou jedině lze pokládat za správnou podle reklamních brožurek.) V krátké komunikaci mezi WWW-klientem a serverem podle protokolu http 1.1, nejen klient opakuje jméno počítače, ze kterého získává WWW-stránku, ale měl by i uvést, co je zač (User-Agent: ). Bohužel se většinou neuvádí (pro nás potřebné) Accept-Charset: . A tak se v rámci programové nadstavby rozšířilo, že konverzní program na WWW-serveru podle toho, jak by měl být takový a takový program (asi zase podle reklamních letáků) nakonfigurován, pošle WWW-stránku v předpokládaném kódu. A uživateli se již žádná volba k výběru ani nedává. Že by k nestandardní konfiguraci měl jiné důvody než vlastní neschopnost, tak takový chaos u nás přece podporovat nebudeme. Zcela dočasně (protože WWW-servery jsou převzaté programy) je možno se smířit s tím, že lze se serverem komunikovat i ve verzi 0.9, v níž informace o klientovi nelze předat. Potom tedy obdrží nějakou jednu implicitně danou variantu kódování češtiny.
Kde se takovýto způsob překódovávání českého textu vyskytuje? Teď už na řadě WWW-serverů. Třeba i na www.cesnet.cz [4]. Pokud obsah dosud nezměnili, tak viz hned http://www.cesnet.cz/reakce.html [5] nebo třeba http://www.cesnet.cz/cesnet/cz/prices/home.html [6]. A pokud na tom nejste správně s konfigurací a vadí Vám nečitelné znaky, tak to máte prostě smůlu, ledaže byste se na text podívali přes "anonymní Lynx" přístupný přes TN3270 na Floridě. Ke cti lidí z www.cesnet.cz [7] je třeba říci, že když se v klientovi nevyznají, posílá se mu stránka bez diakritiky. No ale potom je již všechno jednoduché. Každý uživatel Internetu přece po večerech musí studovat RFC-dokumeny [8], a tak samozřejmě ví, že z režimu spolupráce s Gopherem lze na WWW-server promluvit v protokolu http 0.9, stačí jen přepsat http: na gopher: a přidat :80/hGET%20, tedy například: gopher://www.cesnet.cz:80/hGET%20/reakce.html anebo gopher://www.cesnet.cz:80/hGET%20/cesnet/cz/prices/home.html.
Možná několik řádek vysvětlení těchto URL-specifikací. Odkazy na Gopher obvykle obsahují na začátku cesty k souboru cifry 00 evenutálně znaky 11 pro menu, např. gopher://gopher.eunet.cz/11/services. První znak v celé cestě instruuje klienta o typu, tedy 1 - menu, dalším znakem pak začíná požadavek, který klient zadává Gopher-serveru (a který musí pro většinu serverů opět začínat informací, zda je požadováno menu nebo soubor), konkrétně tedy 1/services . Specifikací gopher://gopher.eunet.cz/01/services by tak měl WWW-klient získané menu zobrazit jako soubor, jenž vlastně obdžel. V pozdějším rozšíření se pak objevil i typ h, interpretovat získaný soubor hypertextově.
Specifikace ..:80/hGET%20/.. tedy znamenají hypertextově interpretovat soubor, který se získá požadavkem GET /.. zaslaným na port 80. Ale to je přesně způsob, jímž komunikuje WWW-klient s WWW-serverem podle protokolu http 0.9. Jistým problémem je pak získání obrázků do WWW-stránky. Odkazy na ně buď musí obsahovat cestu začínající z této WWW-stránky anebo je třeba, aby stránka byla vytvořena tak, že obsahuje v hlavičce specifikaci BASE. Pro úplnost je snad třeba ještě doplnit, že použitý WWW-klient musí sám interpretovat %20 jako mezeru a tu uvést v požadavku za slovem GET. Proto může být pro některé klienty (naopak) potřeba mezeru násilím uvést: ..:80/hGET /...
A nyní nám již nemůže ani automatické přepínání kódu češtiny znepříjemňovat čtení časopisu Ikaros třeba i na počítači špatně nakofigurovaném. Problém je ale v tom, že při komunikaci přes protokol http 0.9 nedostaneme text bez diakritiky. Navíc na požadavek gopher://ikaros.ff.cuni.cz:80/hGET%20/ dostaneme WWW-stránku Filozofické fakulty. Přes protokol 0.9 totiž nelze serveru předat informaci o zadaném jméně hostitelského počítače a není proto ani možné rozlišit mezi alias-jmény ikaros.ff.cuni.cz a www.ff.cuni.cz [9]. Ale obdobně je věc řešena na www.cuni.cz [10]. Analogií s gopher://www.cestina.cz:80/hGET%20/ lze tedy předpokládat, že by šlo použít gopher://www.ff.cuni.cz:80/hGET%20/ikaros/ a že možná i přepínání češtiny půjde specifikovat vhodným suffixem. Bohužel suffixy na ..ff.cuni.cz nejsou stejně pojmenované a nejsou ani přímo k nalezení.
Potom už zbývá jediná možnost, hledat v domovských stránkách studentů. Třeba to některý z nich (omylem) přímo uvedl, neboť z role uživatele se ještě plně nevžil do role budoucího správce. I když z WWW-stránky na jiném počítači, přesto lze nalézt správný výsledek: http://ikaros.ff.cuni.cz/welcome.htm.CASCII [11]. WWW-stránky jsou napsány tak šťastně, že lze i odkazy a obrázky získat přes URL-specifikaci: gopher://www.ff.cuni.cz:80/hGET%20/ikaros/welcome.htm.CASCII. Pro kód ISO-latin2 se doplňuje .CISO8859_2 [12] a pro Windows-1250 .CP1250 [13], i když toto přepínání obvykle WWW-klienti umějí. Z variant kódování, které - eventuálně interně - ještě připouští ( budoucí ) Státní informační systém [14], už zbývá jen PC-latin2, a to je .CP852 [15]. - Navíc snad doplňme pro uživatele Arachne kód Kamenický, pro ten je třeba použít .CKAM [16]. Vše samozřejmě platí pouze do doby, než někdo napíše dokonalejší program, aby už nebylo vše tak průhledné.
Co by mě ovšem velmi zajímalo, je názor nějakého krajana třeba v Americe, který zašel do místní knihovny a tam někde našel terminál, z něhož se bylo možno podívat na WWW u nás. Zda i on si myslí, jak dokonalý je náš automatický výběr kódu ve srovnání se zcela nedokonalou instalací v jejich knihovně, protože tam nemají fonty, kde by byly naše háčky. A že si pak některá naše slova po těch letech tak rychle nedomyslí? Jeho chyba! No přece si nesedl k terminálu, aniž by si alespoň trochu nepročetl rfc1345 [17], rfc1436 [18], rfc1738 [19], rfc1945 [20], rfc2068 [21] a rfc2145 [22].