╚e╣tina / cestina

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 - Unicode - URL encoded - Specißlnφ znaky - Opera - Mozilla, doctype a windows-1250 - P°ek≤dovßnφ

Co je k≤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φ.

ProblΘm:

Hodn∞ r∙zn²ch lidφ si usmyslelo, ╛e ud∞lajφ k≤dovßnφ Φe╣tiny, jenom╛e to ka╛d² ud∞lal jinak.

NejΦast∞j╣φ k≤dovßnφ

V poslednφ dob∞ p°evlßdajφ dv∞ k≤dovßnφ Φe╣tiny:

  1. ISO 8859-2
  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, ISO Latin 2, Microsoft jej naz²vß "St°edoevropskΘ jazyky (ISO)".

Windows-1250 je preferovßno na Windowsech. Jeho obliba na webov²ch strßnkßch roste zejmΘna kv∙li tomu, ╛e jej pou╛φvß FrontPage jako zßkladnφ k≤dovßnφ (t°eba╛e se dß p°epnout) a Notepad (poznßmkov² blok).

Dal╣φ k≤dovßnφ jako k≤d brat°φ Kamenick²ch, Mac, PC Latin 2 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.

Rozdφly

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.

Argumenty pro windows-1250

Notepad (nejjednodu╣╣φ tex╗ßk, ve kterΘm se to nedß p°epnout) 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 t∞ch 6 znak∙ pomocφ altu s Φφsly.

Jste-li tvorovΘ windowsßΦtφ (a budete nav╛dy), pou╛φvejte k≤dovßnφ Windows. Dostanete se do men╣φho poΦtu problΘm∙.

Argumenty pro Iso-8859-2

Pokud nebudete strßnky psßt v Notepadu nebo nejste zam∞stnanci firmy Microsoft, 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φ". Windows-1250 bylo pozd∞ji standardizovßno takΘ, ale kdo vφ, jestli to platφ.

V blogu jsem popsal zp∙soby, jak psßt v iso na systΘmu windows.

R∙znß °e╣enφ

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:

P°epφnßnφ v prohlφ╛eΦi

Modernφ prohlφ╛eΦe 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.

AutomatickΘ meta nastavenφ

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.

P°ek≤dovßnφ na serveru

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 ModCzech. 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.

Jak to funguje

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.

Fatßlnφ problΘm

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."

Na serverech, kde b∞╛φ ModCzech (jin² Φast² modul na k≤dovßnφ Φe╣tiny) se soubory s meta tagem content type v∙bec nedokß╛ou odeslat a hlßsφ to chybu zero content size.

Unicode

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).

URL encoded

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. K≤d pφsmene m∙╛ete zjistit tak, ╛e si ho napφ╣ete do n∞jakΘho formulß°e (zkontrolovat k≤dovßnφ), ode╣lete a kouknete se do adresy, co se s tφm pφsmenem stalo.

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. V javascriptu se dß odpßlit pomocφ funkce unescape(), podobn∞ v jin²ch jazycφch

Specißlnφ znaky

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 "&aacute;". 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  &ntilde; ñ
&?circ; st°φ╣ka &ecirc;  ê
&?uml; dv∞ teΦky  &auml; Σ
&?acute; Φßrka  &iacute; φ
&?grave; opaΦnß Φßrka &agrave; à
&?ring; koleΦko, krou╛ek &aring; å
&?slash p°e╣krtnutΘ pφsmeno &oslash; ø

Home Site 4 & Sun Office

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 ø (&oslash;). 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 &oslash; 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.

Netscape Composer

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. ,

Opera

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.

Mozilla, doctype a windows-1250

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.

P°ek≤dovßnφ

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.volny.cz/drd/konvertor/download.html Dφky pat°φ Pavlu Strnadovi.

FrontPage

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.

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, Jak psßt iso na windows, Online p°evodnφku Φesk²ch znak∙ na Unicode. Pavel Herout: Unicode a UTF8.

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

Jak psßt web: www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003