WML v malíčku – diakritika

26. září 2002

dnesni dobe je psani stranek bez diakritiky navratem zpatky. I mobilni telefony uz podporuji ceske znaky… Je tedy načase toho náležitě využít.

Opravdu to bez té diakritiky nějak není ono. Proto si povíme, co je třeba udělat, aby se na displejích mobilních telefonů české znaky zobrazovaly správně. Než si ale ukážeme možná řešení, podíváme se, jak by to vypadat nemělo.

Příklad p10.wml:

<?xml version=“1.0″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“ „http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card id=“karta1″ title=“Prvni karta“>
 <p>
  A teď trochu diakritiky: ěščřžýáíé  </p>
</card>
</wml>

Vypíše se: A te? trochu diakritiky: ???????

Jak všichni víme, před odesláním stránky na displej mobilního telefonu si stránku ještě otevře brána na straně operátora, která ji převede do podoby binárního WML. Pokud si brána poradí s kódováním češtiny, máte vyhráno. Brána se ale nejprve musí dozvědět, v kterém kódování je stránka napsána. Správně bychom měli WML stránky psát v ISO-8859-2, ale brány našich operátorů si úspěšně poradí i s Windows-1250. Do deklarace XML tedy vložíme atribut encoding, jehož hodnota bude ISO-8859-2:

Příklad p11.wml:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“ „http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card id=“karta1″ title=“Prvni karta“>
 <p>
  A teď trochu diakritiky: ěščřžýáíé  </p>
</card>
</wml>

Vypíše se: A teď trochu diakritiky: ěščřžýáíé

A to samé ještě vyzkoušíme s Windows-1250. Příklad p12.wml:

<?xml version=“1.0″ encoding=“Windows-1250″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“ „http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card id=“karta1″ title=“Prvni karta“>
 <p>
  A teď trochu diakritiky: ěščřžýáíé  </p>
</card>
</wml>

Vypíše se: A teď trochu diakritiky: ěščřžýáíé

Řešení pomocí znakových entit

Existuje ještě další, o poznání „krkolomnější“ řešení pomocí znakových entit. Český znak se prostě nahradí speciální entitou. V čem se toto řešení liší? Zůstáváme v kódování UTF-8, takže odpadá problém s českým kódováním na bráně. Každá entita se skládá z &#x, kódu znaku a ;. Tabulka kódů je zde:

Á 00C0
á 00E1
É 00C9
é 00E9
Í 00CD
í 00ED
Ó 00D3
ó 00F3
Ú 00DA
ú 00FA
Ů 016E
ů 016F
Ý 00DD
ý 00FD
Ž 017D
ž 017E
Š 0160
š 0161
Č 010C
č 010D
Ř 0158
ř 0159
Ě 011A
ě 011B
Ď 010E
ď 010F
Ť 0164
ť 0165
Ň 0147
ň 0148

Po nahrazení českých znaků entitami dostaneme následující zdrojový kód. Příklad p13.wml:

<?xml version=“1.0″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“ „http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card id=“karta1″ title=“Prvni karta“>
 <p>
  A te&#x010F; trochu diakritiky: &#x011B;&#x0161;&#x010D;&#x0159;&#x017E;&#x00FD;
&#x00E1;&#x00ED;&#x00E9;  </p>
</card>
</wml>

Vypíše se: A teď trochu diakritiky: ěščřžýáíé

Informace o ostatních znakových entitách najdete na http://www.unicode.org.

Ukázky ze všech článků najdete na http://wap.podklady/1999-2008.interval.cz/slabikarwml/.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *