Diakritika na HTML strßnkßch.
O problΘmech s Φesk²mi fonty pφ╣u na strßnce o formßtovacφch chybßch. KonkrΘtnφ znaky r∙zn²ch k≤dovßnφ lze najφt v k≤dov²ch tabulkßch. Rozpoznat problΘm m∙╛ete na diagnostickΘ strßnce. V tomto textu vyjad°uji pouze vlastnφ nßzory a poznatky.
Co je k≤dovßnφ - NejΦast∞j╣φ k≤dovßnφ - Argumenty pro Windows-1250 - Argumenty pro ISO 8859-2 - R∙znß °e╣enφ - Nastavenφ v prohlφ╛eΦi - AutomatickΘ meta nastavenφ - P°ek≤dovßnφ na serveru - Altavista a spol. - Unicode - Specißlnφ znaky - Opera - Mozilla, doctype a windows-1250 - P°ek≤dovßnφ
PoΦφtaΦ chßpe ka╛dΘ pφsmenko jako Φφslo od 0 do 255 (jeden bajt).
AmeriΦanΘ a AngliΦanΘ (a programßto°i) si vystaΦφ se 128 znaky, proto╛e se John Wicliff (britskß obdoba Mistra Jana Husa) nepletl do v∞cφ, kter²m nerozum∞l, Φili nemajφ nabodenφΦka. T∞mto zßkladnφm 128 znak∙m se °φkß ASCII.
Dal╣φmi Φφsly od 128 do 255 se oznaΦily diakritizovanΘ znaky jazyk∙ zßpadnφ Evropy, a tak vznikl k≤d Latin-1. V n∞m ΦeskΘ znaky nejsou (s v²jimkou ß a φ).
Pro neazbukovΘ jazyky st°ednφ a v²chodnφ Evropy vznikly r∙znΘ k≤dy, kterΘ zachovßvajφ v²znam prvnφch 128 znak∙ ASCII (normalni pismena), ale dal╣φch 128 znak∙ si definujφ po svΘm. A prßv∞ r∙znß p°i°azenφ diakritizovan²ch znak∙ Φφsl∙m od 128 do 255 se oznaΦujφ jako k≤dovßnφ.
Hodn∞ r∙zn²ch lidφ si usmyslelo, ╛e ud∞lajφ k≤dovßnφ Φe╣tiny, jenom╛e to ka╛d² ud∞lal jinak.
V poslednφ dob∞ p°evlßdajφ dv∞ k≤dovßnφ Φe╣tiny:
- ISO 8859-2
- Windows-1250
ISO 8859-2 je, jak u╛ nßzev napovφdß, k≤dovßnφ standardn∞j╣φ, pou╛φvanΘ na Unixu a na Linuxu, ale i v mnoha windowsßck²ch programech. N∞kdy se oznaΦuje jako Latin 2, Microsoft jej naz²vß "St°edoevropskΘ jazyky (ISO)".
Windows-1250 je preferovßno na Windowsech a jeho obliba roste zejmΘna kv∙li tomu, ╛e jej pou╛φvß FrontPage jako zßkladnφ k≤dovßnφ (t°eba╛e se dß p°epnout).
Dal╣φ k≤dovßnφ jako k≤d brat°φ Kamenick²ch, Mac nebo Φe╣tina pro Dos se dnes ji╛ na webu u╛φvajφ tak z°φdka, ╛e jim nynφ nebudu v∞novat pozornost. K≤d Unicode je zase hudbou vzdßlenΘ budoucnosti.
M∙╛ete si prostudovat kompletnφ grafickΘ znßzorn∞nφ znak∙ jednotliv²ch k≤dovßnφ v tabulkßch.
Nejpou╛φvan∞j╣φ k≤dovßnφ ISO 8859-2 a Windows 1250 se v oblasti Φesk²ch znak∙ od sebe odli╣ujφ pouze v ╣esti znacφch -- ╣, ╛, ╗, ⌐, «, ½. Pro zßjemce jsem napsal rozdφly k≤dovßnφ mezi ISO a WIN pro nahrazovßnφ altem.
Notepad (nejjednodu╣╣φ tex╗ßk, ve kterΘm se to p°epnout nedß) pou╛φvß pouze k≤dovßnφ windows-1250. Kdo chce tedy pou╛φvat pro ·pravy strßnek Notepad (a t°eba jß chci), ten bu∩ musφ pou╛φvat windows-1250, nebo se nauΦit t∞ch psßt v ISO pßr znak∙ pomocφ altu s Φφsly.
MnohΘ vyhledßvaΦe publikujφ v²sledky primßrn∞ v k≤du Windows (konkrΘtn∞ zji╣t∞no u jinak perfektnφho Redboxu). Proto╛e si s k≤dovßnφm nelßmou hlavu, vypisujφ ·ryvky v tom k≤du, ve kterΘm ho na╣ly, tak╛e je to n∞kdy trochu neΦesky.
Jste-li tvorovΘ windowsßΦtφ (a budete nav╛dy), pou╛φvejte k≤dovßnφ Windows. Dostanete se do men╣φho poΦtu problΘm∙.
Pokud nebudete strßnky psßt v Notepadu nebo nejste zam∞stnanci firmy Mal²m∞kk², rozhodn∞ doporuΦuji k≤dovßnφ ISO 8859-2. Jß jsem d°φve pou╛φval Windows-1250, nynφ ISO 8859-2.
Zßsadnφ vtip je v tom, ╛e ISO je k≤dovßnφ v²hradn∞ pou╛φvanΘ v Unixu a Linuxu. Samoz°ejm∞ ╛e UnixovskΘ a LinuxovskΘ programy windowsßckΘ k≤dovßnφ n∞jak zvlßdnou (p°inejhor╣φm se ty programy trochu p°epφ╣ou), ale ned∞lß to dobrotu.
Dal╣φm sice pochybn²m (p°esto Φasto uvßd∞n²m) argumentem je fakt, ╛e je to k≤dovßnφ "standardnφ".
Fajn, mßme tady n∞kolik r∙zn²ch k≤dovßnφ. Text se prost∞ napφ╣e v n∞kterΘm z nich. Te∩ jde o to JAK °φci prohlφ╛eΦi u Φtenß°e (obecn∞ klientovi), v jakΘm k≤dovßnφ text je, aby se to sprßvn∞ zobrazilo:
Modernφ prohlφ╛eΦe (od verze tu╣φm 3, krom∞ Opery) umo╛≥ujφ p°ek≤dovat text p°φmo na klientskΘm poΦφtaΦi. Prost∞ si Φtenß° vybere k≤dovßnφ (je to n∞kde v nabφdce, v∞t╣inou zobrazit / k≤dovßnφ) a zkou╣φ r∙znß k≤dovßnφ, dokud to nenφ Φesky. To je relativn∞ jednoduchΘ. ProblΘm je se star╣φmi prohlφ╛eΦi, jenom╛e ty dnes, doufßm, u╛ skoro nikdo nepou╛φvß.
V∞t╣φ problΘm je s u╛ivateli. Nemylme se -- jen mizivΘ procento u╛ivatel∙ umφ k≤dovßnφ p°epnout, t°ebas je to prostΘ. Tak╛e lep╣φ je to nastavovat automaticky.
Aby nemusel Φtenß° m²ch strßnek n∞kolikrßt zkou╣et a p°epφnat, aby
zjistil, v jakΘm k≤dovßnφ to mßm, umis╗uji do hlaviΦky strßnek jeden meta tag:
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
nebo: <meta http-equiv="Content-Type" content="text/html;
charset=windows-1250">
╪φkß to, ╛e strßnka je psßna v tom kterΘm k≤dovßnφ. Prohlφ╛eΦ to pochopφ jako ekvivalent http hlaviΦky a text nabφdne v onom k≤dovßnφ.
Zadßvßnφ tohoto tagu nabφzejφ n∞kterΘ editory automaticky (nap°φklad dob°e nastaven² FrontPage 2000: Tools / Web Settings / Language / Default HTML Encoding).
Pozor, fatßlnφ problΘmy nastupujφ, pokud do toho tagu napφ╣ete ╣patn² k≤d. Pak si Φesky nep°eΦte nikdo (n∞kde to pak nejde p°epnout) a je to mnohem hor╣φ, ne╛ tam nenapsat nic.
Pokud server i klient pou╛φvajφ http protokol 1.1 a na serveru b∞╛φ program pro automatickou zm∞nu k≤du, nenφ t°eba se starat v∙bec o nic. Je-li tomu tak, vφ zpravidla sprßvce serveru.
NejlΘpe to ╣lape na serverech Apache, pokud je tam doinstalovßn modul Φe╣tiny. Nejoblφben∞j╣φ alternativnφ program pro jinΘ servery je SaCzech [sßΦek] od Pavla Satrapy, kter² vyu╛φvß CGI.
Zjistil jsem, ╛e takov² program je mo╛nΘ vyu╛φvat, pokud publikujete strßnky nap°φklad na serveru www.volny.cz.
Klient za╣le serveru po╛adavek zßrove≥ se seznamem r∙zn²ch k≤dovßnφ,
kterß akceptuje. Sever strßnku do n∞jakΘho takovΘho p°evede a po╣le je
klientovi. P°ipojφ do hlaviΦky text
text/html; charset=windows-1250
, t°eba. Klient pak u╛ vφ.
DrobnΘ problΘmy nastßvajφ p°i uklßdßnφ v cache pam∞tech nebo na offline prohlφ╛enφ. Serverov∞ upravenΘ strßnky toti╛ podle mΘ zku╣enosti nejsou uklßdßny.
Pokud server pou╛φvß automatickΘ p°ek≤dovßnφ a zßrove≥ uvßdφte do hlaviΦky meta tag content-type, m∙╛e nastat velk² problΘm, proto╛e meta deklarace bude vlastn∞ dvojφ, co╛ prohlφ╛eΦ zmate. V tom p°φpad∞ nastßvß rozsypan² Φaj. Tak╛e se bu∩to ujist∞te, ╛e na serveru nic takovΘho neb∞╛φ, nebo meta hlaviΦku rad∞ji nezadßvejte. Co mi o tom napsal Jirka Kosek:
"ProblΘm je v tom, ╛e ... SaCzech neumφ odstra≥ovat meta tag potΘ, co provede p°ek≤dovßnφ. Umφ to t°eba csacek."
Nevφm p°esn∞, jak hledat ΦeskΘ texty v zahraniΦnφch prohledßvaΦφch. Vφm ale, ╛e jsou s tφm problΘmy, proto╛e ty stroje nezajφmß k≤dovßnφ. Jde pak o to, v jakΘm k≤dovßnφ bude u╛ivatel zadßvat dotaz. (Obecn∞ se dß °φci, ╛e zahraniΦnφ roboti zobrazujφ v ISO, Φe╣tφ roboti Φast∞ji ve windows-1250.) Proto doporuΦuji zadßvat meta tagy keywords a description alternativn∞ bez diakritiky. Vyskytne-li se v klφΦovΘm slov∞ ╣, ╛ nebo ╗, zadejte je t°ikrßt, jednou podle windows, jednou podle ISO a jednou bez hßΦk∙. A mo╛nß i nßzev strßnky (tag title) kv∙li vyhledßvaΦ∙m odΦe╣t∞te, ale to je spornΘ.
Unicode k≤dovßnφ UTF-8 je dal╣φ pou╛itelnΘ k≤dovßnφ, zajφmavΘ zejmΘna tφm, ╛e obsahuje v╣echny znaky v╣ech abeced. Jeho Φas pravd∞podobn∞ teprve p°ijde, proto╛e zatφm nenφ v∞t╣inou softwaru podporovßn (prohlφ╛eΦe jej ale zvlßdajφ).
╚eskΘ znaky nahrazuje Unicode dvojicφ bajt∙ (namφsto jednoho jako jinß k≤dovßnφ), tak╛e kdy╛ se na text podφvßte na disk nahrubo, uvidφte mφsto jednoho znaku znaky dva (n∞jakΘ klikyhßky).
Kdy╛ se z formulß°e p°edßvajφ data a vyskytne se tam Φe╣tina, prohlφ╛eΦ to p°ek≤duje na "URL encoded" tvar. P°ed ka╛d² znak dß procento a pak hexadecimßln∞ zapφ╣e dv∞ma znaky index ΦeskΘho pφsmene.
%9A = ╣, %9E = ╛, %E1 = ß, %E8 = Φ, %E9 = Θ, %EC = ∞, %ED = φ, %F2 = ≥, %F3 = ≤, %F8 = °, %F9 = ∙, %FD = ²
Na tohle jsem p°i╣el. Nevφm, zda to odpovφdß win nebo iso, berte to s rezervou.
URL encoded Φe╣tinu zde zmi≥uji jenom proto, ╛e na nφ nßhodou n∞kdy m∙╛ete narazit, tak abyste byli alespo≥ trochu v obraze.
Existuje zp∙sob, jak n∞kterΘ ΦeskΘ diakritizovanΘ znaky zobrazit v prohlφ╛eΦi bez ohledu na k≤dovßnφ. Vklßdajφ se pomocφ &; entit; nap°φklad "a s Φßrkou" se pφ╣e "á". Pokud jsem napsal, ╛e to jde jenom pro n∞kterΘ znaky, pak jsem tφm myslel znaky s Φßrkou. HßΦek se mi tφmto zp∙sobem nikdy vykouzlit nepovedlo. Tak╛e je to prakticky nepou╛itelnΘ.
Sybolick² zßpis | Co je nad pφsmenem ? | P°φklad | Zobrazenφ p°φkladu |
---|---|---|---|
&?tilde; | vlnovka | ñ | ñ |
&?circ; | st°φ╣ka | ê | ê |
&?uml; | dv∞ teΦky | ä | Σ |
&?acute; | Φßrka | í | φ |
&?grave; | opaΦnß Φßrka | à | à |
&?ring; | koleΦko, krou╛ek | å | å |
&?slash | p°e╣krtnutΘ pφsmeno | ø | ø |
Vcelku vynikajφcφ HTML editory jsou nepou╛itelnΘ pro ΦeskΘ texty, proto╛e v╣echny ΦeskΘ diakritikovanΘ znaky (ve wysiwyg m≤du) se pokou╣ejφ p°ek≤dovat na tyto symboly. Neumφm to nikde vypnout ani nastavit (aΦkoli na to dostßvßm nefunkΦnφ nßvody). To je v ΦeskΘm textu pon∞kud ne╣ikovnΘ. (Budu p°esn∞j╣φ -- je to na p∞st!) Navφc u hßΦkovan²ch znak∙ d∞lajφ editory chyby, proto╛e se v╣echny sna╛φ nahradit entitami. Tak╛e nap°φklad namφsto znaku ° se zadßvß znak ø (ø). Pavel Satrapa k tomu dodßvß zajφmav² poznatek :
>... Dlu╛no podotknout, ╛e mnozφ WWW klienti ve stejnΘm prost°edφ d∞lajφ tutΘ╛ chybu, ov╣em zrcadlov∞ obrßcenou (tedy ø nezobrazujφ jako ø, ale jako °). Negativnφ d∙sledky se navzßjem vyru╣φ, a u╛ivatel uvidφ strßnku v p∙vodnφ podob∞. To se v╣ak t²kß jen u╛ivatel∙ se "sprßvn∞ ╣patn²mi" klienty, co╛ je hodn∞ slabß nßplast.(P. Satrapa: Web design. Neokortex 1997, str 37.)
T∞mi klienty, kte°φ d∞lajφ zrcadlovou chybu, myslφ Satrapa asi Netscape Navigator 3.
Netscapovsk² Composer d∞lß tu samou chybu, ale dß se vypnout v nabφdce
Options - Document Encoding a zde si u╛ vyberete windows-1250 (ISO 8859-2 to
neumφ :-(
DoporuΦuji potΘ dßt Set default, a╗ to nemusφte nastavovat v╛dycky znova.
Pak je dobrΘ dßt si do ╣ablony onen "Φesk²" meta
tag. ,
Vcelku p∞kn² a funkΦnφ prohlφ╛eΦ Opera 5.0 mß zßsadnφ vadu. Jde o to, ╛e nedokß╛e p°epφnat k≤dovßnφ. Ve windows v╣e zobrazuje pouze ve windows-1250 (to je tφm, ╛e pro tento charset jsou ud∞lßny windowsßckΘ fonty - nevφm, jak je tomu na jin²ch OS). Navφc i text ve windows-1250 zobrazuje n∞kdy ╣patn∞ - to kdy╛ nenφ deklarovßn font * CE.
Jak nastavit v Ope°e k≤dovßnφ, aby to alespo≥ windows-1250 zobrazovalo Φesky: file - preferences - dokument - user font and colors. Pro "normal" vybrat (t∞mi t°emi teΦkami) font t°eba Times, d∙le╛itß je spodnφ nabφdka, kde se vybere "st°edoevropsk²". Vlastnosti "normalu" se pravd∞podobn∞ d∞dφ na ve╣ker² text.
Pokud pφ╣ete ve windows 1250 a mßte ve zvyku zaΦφnat soubor deklaracφ <!doctype html ...> (to se mß), tak se to v Mozille zobrazφ neΦesky. Je pak pot°eba p°ipsat pon∞kud nestandardnφ °ßdek:
<?xml version="1.0" encoding="windows-1250"
?>
Vyu╛φvßm toho, ╛e Mozilla podporuje XML. Dlu╛no p°ipomenout, ╛e s takto oznaΦen²mi html soubory mohou mφt problΘmy XML parsery. ╚ili je dobrΘ upravit html dokument do XHTML, aby odpovφdal standardu XML.
Pokud pot°ebujete p°ek≤dovat soubory z jednoho k≤dovßnφ do jinΘho, v²born∞ vßm poslou╛φ program Konvertor, kter² je voln∞ ke sta╛enφ na http://www.walkman.cz/konvertor.html. Dφky pat°φ Pavlu Strnadovi.
Funguje to jak v FP Expressu, tak ve FP 2000.
P°evedenφ strßnky z windows-1250 do ISO 8859-2: V nabφdce Soubor zvolte Vlastnosti strßnky (File - Properties). Zvolte v polo╛ce Ulo╛enφ tΘto strßnky mφsto volby st°edoevropsk² volbu st°edoevropsk² (ISO 8859-2). V polo╛ce Zobrazenφ tΘto strßnky ponechte p∙vodnφ volbu.
Proto╛e jsem tvor windowsßck² (nem∙╛u za to), nemßm zku╣enosti s jin²mi platformami. Pi╣te mi, prosφm, poznatky o tom, jak se zobrazuje Φe╣tina na Unixu, Linuxu a Macφch.
Dal╣φ: P°ehled
chybn²ch zobrazenφ Φe╣tiny
Vizte tΘ╛: K≤dovacφ tabulky, Formßtovacφ chyby, Meta
tagy, Editory, Rozdφly k≤dovßnφ
Odkaz jinam: P°ehled
k≤dovßnφ na ╚e╣tin∞.cz, pon∞kud precizn∞j╣φ, mφsty tomu nerozumφm
Obsah
Hledßnφ
Zßkladnφ kurs
Editory
HTML tipy
Provoz webu
CSS styly
Jak psßt web:
http://dusan.pc-slany.cz/internet/
Pφ╣e Yuh∙: autorova strßnka, mail: dusan@pc-slany.cz
Poslednφ aktualizace 01.02.2002