Kódování češtiny v dokumentech
Každý webový dokument je, coby čistý text ve své prapodstatě, napsán v některém ze znakových kódování (znakové sadě, character set, charset, character encoding). Dnes se na webu nejčastěji setkáte s univerzálním kódováním UTF-8; občas můžete narazit i na ISO-8859-1 u anglických dokumentů či ISO-8859-2 (nebo podobné WINDOWS-1250) u českých. Je nutné zajistit, aby kódování, ve kterém je dokument skutečně napsán, souhlasilo s kódováním, které cílový webový prohlížeč použije při jeho interpretaci/dekódování. Při nesouladu uvidí člověk, který si váš web bude prohlížet, více nebo méně nesrozumitelný text.
Pokud své stránky píšete v kódování UTF-8, nemusíte se o nic dalšího starat. Návštěvníci uvidí diakritiku (a jiné ne-ASCII znaky) tak, jak zamýšlíte.
Při interpretování staženého webového dokumentu prohlížeč zjišťuje, v jakém kódování je dokument napsán, podle následujících ukazatelů:
- HTTP hlavička
Content-Type
- značka
meta
ve zdrojovém textu dokumentu - implicitní nastavení předpokládaného kódování v prohlížeči
Tento seznam je uspořádán podle priority: to znamená, že zašle-li server při přenosu dokumentu hlavičku Content-Type
se specifikovaným kódováním, vezme jej prohlížeč za směrodatné. Pokud adekvátní hlavička přítomna není, podívá se prohlížeč na případné značky meta
ve zdrojovém textu dokumentu. Pokud ani ta není v požadované formě přítomna, přistoupí se k implicitnímu nastavení prohlížeče.
Webový server na Aise (čili www.fi.muni.cz) implicitně hlavičku Content-Type
posílá a prohlížečům sděluje, že se používá kódování UTF-8. Toto chování je možné změnit direktivou AddDefaultCharset
v adekvátním souboru .htaccess
. Její syntaxe je AddDefaultCharset kódování
a její přítomnost (na vlastním řádku) v souboru .htaccess
v adresáři s webovými dokumenty způsobí, že pro tyto dokumenty bude prohlížečům oznamováno příslušné změněné kódování. Namísto platného kódování je možné v parametru uvést i slovo Off
, čímž se posílání hlavičky vypne úplně. Je pak žádoucí do dokumentů uvést značku meta
, podle níž se bude prohlížeč při zobrazování těchto dokumentů řídit.
Serverem podporovaná tvorba vícejazyčných mutací dokumentů
Součástí požadavku o konkrétní stránku, který zasílá webový prohlížeč serveru, je i prioritně uspořádaná specifikace jazyků, v nichž prohlížeč stránky preferuje. (Tento preferenční seznam v prohlížeči nastaví uživatel.) Na serveru jsou různé mutace jedné stránky uloženy v různých souborech v jednom adresáři, přičemž jednotlivé jazykové mutace jsou označeny dodatečnou příponou v závislosti na jazyku. Kupříkladu dokument https://www.fi.muni.cz/~xnovak99/stranka.html může být na disku reprezentován soubory stranka.html.cs
, stranka.html.en
a stranka.html.pl
(česká, anglická a polská verze).
Pokud server má k dispozici více jazykových variant požadovaného dokumentu, vrátí prohlížeči tu z dostupných variant, která nejvíce vyhovuje prioritám prohlížeče. Pokud žádná z preferovaných jazykových variant dostupná není, vrátí server verzi českou.
Uvedené chování je (na straně serveru) potlačeno, pokud je splněna alespoň jedna z podmínek:
- je dostupný soubor odpovídající jménu dokumentu v URL (tj. bez jazykové přípony)
- v adresáři, kde nemá být multijazykové verzování bráno v úvahu, je přítomen soubor
.htaccess
s řádkemOptions -MultiViews
- adresář, kde nemá být multijazykové verzování bráno v úvahu, nemá unixové oprávnění
r
pro ostatní
stranka.html.cs
, stranka.html.en
a stranka.html
, tak uživateli na požadavek na dokument stranka.html bude vždy vrácen obsah souboru stranka.html
.