Kódování znaků

Chybové hlášení prohlížeče je způsobeno tím, že náš dokument nepoužívá správné kódování znaků v dokumentu. Aby šlo v XML bez problémů zapisovat znaky libovolného jazyka, používá se znaková sada ISO 10646. Ta je 32bitová, což znamená, že může obsahovat až 232 znaků. Do tohoto prostoru se kromě znaků anglické a české abecedy vejdou i pro nás mnohdy kuriózní znaky dalších abeced z celého světa. Protože by pro většinu dokumentů bylo přímé použití ISO 10646 zbytečným plýtváním – jeden znak by zabral čtyři bajty – používá se v XML standardně kódování UTF-8.

UTF-8 kóduje jeden znak do různého počtu bajtů. Znaky anglické abecedy jsou uloženy do jednoho bajtu a jejich kód odpovídá ASCII kódu. Ostatní znaky jsou kódovány do dvou až šesti bajtů. Konkrétně české znaky s diakritikou jsou kódovány do dvou bajtů.

Pokud váš ukázkový dokument obsahoval české znaky, patrně byly uloženy jen v jednom bajtu v kódování, které používá váš operační systém. To také zmátlo prohlížeč při pokusu o načtení vašeho dokumentu.

Naši chybu můžeme napravit tím, že dokument uložíme v kódování UTF-8. Textových editorů, které umí soubory ukládat v UTF-8, zatím však moc není. Naštěstí to není neřešitelný problém. Na samotném začátku dokumentu můžeme určit kódování, které náš dokument používá. Používá se k tomu XML deklarace.

<?xml version="1.0" encoding="windows-1250"?>

Právě v atributu encoding se uvádí použité kódování. Pokud pracujeme ve Windows, umí náš editor pravděpodobně pouze kódování windows-1250, na Unixu to bude zase iso-8859-2. Použijeme-li deklaraci na začátku dokumentu, prohlížeč pak dokument interpretuje správně (obrázek 3).

Obrázek 3. Narozdíl od HTML prohlížeč neví, jak má XML dokument zobrazit. V některém z dalších čísel Softwarových novin si ukážeme, jak můžeme pomocí stylu definovat vzhled dokumentu

Pokud máme dokument uložen ve správném kódování, mohou s ním pracovat další aplikace včetně prohlížečů. Prohlížeče však neví, jak si přejeme jednotlivé elementy zobrazit. To lze určit pomocí stylu. Bez něj nám Mozilla dokument zobrazí jako jeden dlouhý odstavec. Internet Explorer nám dokument zobrazí alespoň trošku přehledně.

Obrázek 4. Mozilla bez stylu XML dokument zobrazí jako jeden dlouhý odstavec

© Jiří Kosek 2000-2001