VÜechny dosavadnφ ukßzky WML k≤du obsahovaly Φesk² text bez diakritiky. Mohli jste proto nab²t neoprßvn∞nΘho dojmu, ₧e wapovΘ strßnky nelze psßt s Φesk²mi znaky. ╚eÜtinu samoz°ejm∞ pou₧φt lze, ale nenφ to tak jednoduchΘ, jak by se mohlo zdßt.
Jazyk WML vychßzφ z XML. To jako znakovou sadu pou₧φvß ISO 10646. V praxi mohou XML dokumenty obsahovat libovoln² znak z libovolnΘho jazyka pou₧φvanΘho dnes na Zemi. V jednom dokumentu tak m∙₧eme pou₧φvat angliΦtinu, ΦeÜtinu, ruÜtinu a t°eba i arabÜtinu s korejÜtinou. Pro zßpis znak∙ je pot°eba pou₧φt n∞jakΘ k≤dovßnφ, kterΘ °φkß jakΘmu znaku odpovφdajφ jednotlivΘ bajty nebo sekvence bajt∙ ulo₧en²ch v souboru s XML dokumentem.
XML jako primßrnφ k≤dovßnφ pou₧φvß k≤dovßnφ UTF-8. Na n∞m je zajφmavΘ to, ₧e znaky z ASCII majφ stejn² k≤d i v UTF-8. Znaky nßrodnφch abeced se uklßdajφ do prom∞nlivΘho poΦtu bajt∙. Nap°φklad znaky s Φeskou diakritikou se uklßdajφ do dvou bajt∙. Pro editovßnφ soubor∙ s k≤dovßnφm UTF-8 proto pot°ebujeme specißlnφ editor.
Specifikace jazyka WML jako k≤dovßnφ rovn∞₧ preferuje UTF-8. VÜe se tedy zdß jednoduchΘ, ulo₧φme strßnky s ΦeÜtinou v k≤dovßnφ UTF-8 a bude vyhrßno. Bohu₧el, ze zcela nepochopiteln²ch d∙vod∙ dneÜnφ brßny mobilnφch operßtor∙ a mobilnφ telefony k≤dovßnφ UTF-8 nepodporujφ. P°i pokusu o naΦtenφ takovΘ strßnky dostaneme jen chybovΘ hlßÜenφ.
Prvnφ mo₧nostφ, jak na strßnkßch bez problΘmu zobrazovat znaky s diakritikou, jsou znakovΘ entity. Ve WML strßnce m∙₧eme pou₧φt zßpis &#xk≤d;, kde k≤d je k≤d znaku, kter² chceme do strßnky vlo₧it. K≤dy znak∙ lze zjistit nap°. na t∞chto adresßch http://www.unicode.org/charts/PDF/U0080.pdf a http://www.unicode.org/charts/PDF/U0100.pdf. Strßnku s v∞tou äP°φliÜ ₧lu¥ouΦk² k∙≥ ·p∞l ∩ßbelskΘ ≤dy.ô pak m∙₧eme zapsat takto:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="CS pomoci entit"> <p align="left">Příliš žluťoučký kůň úpěl ďábelské ódy. </p> </card> </wml>
Vytvß°et takov²mto zp∙sobem strßnky je samoz°ejm∞ dost nepohodlnΘ. Konverzi na znakovΘ entity za nßs naÜt∞stφ m∙₧e ud∞lat program. Jeden takov² jsem pro vßs p°ipravil a m∙₧ete si ho stßhnout z adresy http://www.kosek.cz/sw/convert/.
Vid∞li jsme, ₧e znaky `<' a `&' majφ ve WML specißlnφ v²znam. Prvnφ z nich uvozuje tagy WML a druh² znakovΘ entity. Pokud chceme tyto znaky zapsat jako souΦßst dokumentu, musφme pou₧φt jejich specißlnφ opis û `<', resp. `&'.
Specifikace WML °φkß, ₧e klienti mohou podporovat i dalÜφ k≤dovßnφ ne₧ je UTF-8. Nabφzφ se tedy pou₧itφ k≤dovßnφ ISO-8859-2, kterΘ se pou₧φvß p°edevÜφm na unixov²ch systΘmech, ale podporujφ ho i n∞kterΘ aplikace pro Windows. VÜechny telefony, kterΘ jsem m∞l v ruce, toto k≤dovßnφ zvlßdly. O konverzi k≤dovßnφ se vÜak z principu starß brßna operßtora. Oba dva ΦeÜtφ operßto°i si poradφ i s k≤dovßnφm obvykl²m ve Windows (windows-1250).
Osobn∞ vßm tedy doporuΦuji strßnky vytvß°et v k≤dovßnφ ISO-8859-2. Tento zp∙sob je funkΦnφ a vyhovuje standard∙m WML. Pou₧itφ windows-1250 je takΘ mo₧nΘ, ale WAP f≤rum nijak oficißln∞ toto k≤dovßnφ nepodporuje.
Jedinß zm∞na, kterß nßs na strßnkßch Φekß p°i pou₧itφ t∞chto k≤dovßnφ, je sprßvnΘ uvedenφ k≤du v deklaraci na zaΦßtku WML strßnky:
<?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 title="CS v iso-8859-2"> <p align="left">P°φliÜ ₧lu¥ouΦk² k∙≥ ·p∞l ∩ßbelskΘ ≤dy.</p> </card> </wml>