Signokodoj

Kiel skribi signojn en HTML

La cxi-postaj klarigoj antauxsupozas bazajn sciojn pri HTML.

Rekta skribo laux la aktuala kodo/kodprezento

Kiam oni verkas HTML-pagxon, oni povas simple kaj rekte (normale per unuopaj bitokoj) skribi cxiujn signojn, kiuj enestas en tiu signokodo, kiun oni elektis. Por ke la legiloj sciu, kiun signokodon oni uzis, normale la servilo sendu kasxan informon pri tio en t.n. http-cxapo antaux ol la efektiva pagxo estas liverata (pri tio legu ankaux en miaj klarigoj pri Esperantaj literoj en TTT).

Se oni ne povas agordi sian servilon, ke gxi sendu tian informon, oni povas anstatauxe en la cxapo de la HTML-pagxo (la parto inter <head> kaj </head>) aldoni meta-elementon, kiu informas pri la uzata signokodo kaj kodprezento, ekz.:

   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Tiu linio montras, ke Latino 1 (iso-8859-1) estas uzata.

Simile:

   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />

   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-3" />

   <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />

Kiam oni uzas Unikodon, la kodprezento UTF-8 estas la plej bona elekto:

   <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

Se oni uzas XHTML-on, oni ankaux metu tian informon en t.n. XML-deklaron (krom se la signokodo estas UTF-8 aux UTF-16 - tiam XML-deklaro estas libervola). Tian XML-deklaron oni metu plej unue en la XHTML-pagxo. Ekz.:

   <?xml version="1.0" encoding="iso-8859-1"?>

   <?xml version="1.0" encoding="iso-8859-3"?>

   <?xml version="1.0" encoding="utf-8"?>
   (libervola deklaro, cxar UTF-8 estas uzata)

Pri XHTML kaj XML-deklaroj vidu detalojn en miaj pagxoj pri XHTML.

Simbolaj kaj numeraj indikoj de signoj

La baza signokodo de HTML 4 kaj de XHTML 1.0 estas Unikodo (antauxe estis Latino 1). Sendepende de la uzata kodo kaj kodprezento oni cxiam povas enmeti cxiun ajn Unikodan signon per gxia HTML-nomo aux per numera referenco. Ecx se oni uzas ekz. la kodon Latino 2, oni povas uzi signojn el ekz. Latino 1, kiuj mankas en Latino 2, se oni skribas ilin nome aux numere. Same oni povas enmiksi ekz. Rusajn literojn en Latino-3-an pagxon, Grekajn signojn en pagxon Latino-4-an, k.t.p. Jen kelkaj ekzemploj:

  • &#234; / &#xEA; / &#xea; / &ecirc; = “ê”.
  • &#321; / &#x141; = “Ł”.
  • &#261; / &#x105; = “ą”.

Estu &# antaux dekuma numero, kaj &#x antaux deksesuma numero (kaj cxiam ; poste). Dekumaj kodoj estas pli fidinde uzeblaj. La deksesumaj ofte tute ne funkcias. En multaj tabeloj de signoj oni tamen donas nur deksesumajn numerojn. (Rimarku, ke se oni uzas XHTML-on, nepre estu minuskla “x” en &#x.)

Estu & antaux HTML-nomo, kaj ; poste.

Kompreneble estas plej oportune skribi cxiujn signojn rekte. Tiam necesas uzi signokodon, kiu enhavas la bezonatajn signojn, kaj tekstoredaktilon, kiu regas tiun signokodon. Sed numeraj referencoj kaj HTML-nomoj ofte povas esti konvenaj, se oni ne scias, kiel tajpi iun signon. Por malofte bezonataj signoj tia solvo povas ofte esti oportuna.

Kelkaj konsiloj

Se oni uzas nur signojn el Askio, kaj indikas cxiujn aliajn signojn per numeraj referencoj aux simbolaj HTML-nomoj, tiam oni ne bezonas anonci la uzatan signokodon, cxar Askio estas subaro de cxiuj normalaj signokodoj. Tio estas do la plej sekura maniero skribi HTML-pagxojn. Bedauxrinde iuj malnovegaj TTT-legiloj estas fusxe faritaj, kaj foje tamen reagas malgxuste al tia tute lauxnorma HTML. Ekz. por placxi al la eraroplena TTT-legilo Netscape Navigator 4 (nun praktike tute formortinta) oni bezonis enmeti indikon pri UTF-8 (aux UTF-7) en pagxon, kiu uzas Unikodajn signojn super 255, ecx se oni tute ne uzas UTF-8-on (nek UTF-7-on). Alie la legantoj devis mem ensxalti Unikodan montradon. (Rimarku, ke UTF-7 estas tre malrekomendinda. En UTF-7-a pagxo oni ne povas uzi cxiujn ajn Askiajn signojn - iujn oni devas speciale kodi, kaj tio povas doni problemojn. Uzu UTF-8-on.)

Kiam temas pri tiaj cxi tiklaj aferoj (kaj ankaux aliokaze), oni ne povas fidi je la konduto de nur unu TTT-legilo (tiu, kiun oni mem hazarde uzas...). Ne estas certe, ke cxio estas en ordo, nur cxar la pagxoj aperas gxuste, kiam oni rigardas ilin per TTT-legilo. Necesas lerni kaj sekvi la oficialajn normojn. Nur tiel oni povas (almenaux iom) fidi, ke la HTML-pagxoj, kiujn oni verkas, aperos gxuste en cxiuj diversaj TTT-legiloj (kaj en konataj legiloj, kaj en tute ne konataj, kaj en jam aperintaj legiloj, kaj en iam aperontaj).

Iuj HTML-redaktiloj mem sxangxas cxiujn bitokojn super 127 en simbolajn HTML-nomojn. Se vi verkas pagxon, kiu ne uzas Latinon 1, vi atentu, ke la HTML-redaktilo vere komprenas la uzatan signokodon. Multaj tiaj programoj cxiam supozas, ke Latino 1 estas uzata, kaj povas tute fusxi la kodon. Se vi intencas uzi Latinon 3, kaj enskribas ekz. la Esperantan literon “c” kun cirkumflekso, povas esti, ke la HTML-redaktilo kasxe sxangxas gxin en la HTML-kodajxon &aelig;, kiu kompreneble indikas tute alian literon (ae-ligajxon). Tio okazas, cxar “c” kun cirkumflekso hazarde havas la saman kodpozicion (en Latino 3) kiel ae-ligajxo (en Latino 1). Gxustaj kaj lauxnormaj TTT-legiloj cxiam montras &aelig; kiel ae-ligajxon. Nur fusxaj legiloj (kaj TTT-legiloj, al kiuj oni trudis falsajn tiparojn) povas montri gxin kiel alian signon. Kontrolu do, ke via HTML-kodo vere enhavas tion, kion vi volas, ke gxi enhavu.

Memoru, ke simbolaj HTML-nomoj (ekz. &ecirc;), kaj numeraj HTML-kodoj (ekz. &#234; aux &#xEA;) cxiam referencas al signoj en Latino 1 aux Unikodo. Neniel eblas uzi tiajn kodojn por referenci al signo en alia signokodo (ekz. Latino 3 aux Latino 2), se la signo ne estas sama kiel en Latino 1. Se tia erara indiko iafoje sxajnas doni la celitan rezulton, tio nur signifas, ke la TTT-legilo estas rompita, aux ke iu instalis tiparon kun falsaj signobildoj.

Novaj HTML-nomoj

Cxe multaj signoj mi indikis en la cxi-tieaj tabeloj simbolan HTML-nomon. Por signoj en Latino 1, tiaj HTML-nomoj funkcias praktike cxiam. Aliaj tiaj nomoj estas pli nove enkondukitaj (ekde HTML 4). Tiuj novaj HTML-nomoj funkcias en cxiuj bonaj modernaj TTT-legiloj, sed en kelkaj malnovaj legiloj, ankoraux uzataj de ne ignorebla nombro de legantoj, ili bedauxrinde ne funkcias. Tial, por referenci al signoj, kiuj ne aperas en Latino 1, oni uzu prefere la Unikodajn signonumerojn.

Jen kompleta kolekto de tiaj novaj simbolaj nomoj:

simbola kodo numera kodo signobildo (laux via TTT-legilo)
&OElig; &#338; Œ
&oelig; &#339; œ
&Scaron; &#352; Š
&scaron; &#353; š
&Yuml; &#376; Ÿ
&fnof; &#402; ƒ
&circ; &#710; ˆ
&tilde; &#732; ˜
&Alpha; &#913; Α
&Beta; &#914; Β
&Gamma; &#915; Γ
&Delta; &#916; Δ
&Epsilon; &#917; Ε
&Zeta; &#918; Ζ
&Eta; &#919; Η
&Theta; &#920; Θ
&Iota; &#921; Ι
&Kappa; &#922; Κ
&Lambda; &#923; Λ
&Mu; &#924; Μ
&Nu; &#925; Ν
&Xi; &#926; Ξ
&Omicron; &#927; Ο
&Pi; &#928; Π
&Rho; &#929; Ρ
&Sigma; &#931; Σ
&Tau; &#932; Τ
&Upsilon; &#933; Υ
&Phi; &#934; Φ
&Chi; &#935; Χ
&Psi; &#936; Ψ
&Omega; &#937; Ω
&alpha; &#945; α
&beta; &#946; β
&gamma; &#947; γ
&delta; &#948; δ
&epsilon; &#949; ε
&zeta; &#950; ζ
&eta; &#951; η
&theta; &#952; θ
&iota; &#953; ι
&kappa; &#954; κ
&lambda; &#955; λ
&mu; &#956; μ
&nu; &#957; ν
&xi; &#958; ξ
&omicron; &#959; ο
&pi; &#960; π
&rho; &#961; ρ
&sigmaf; &#962; ς
&sigma; &#963; σ
&tau; &#964; τ
&upsilon; &#965; υ
&phi; &#966; φ
&chi; &#967; χ
&psi; &#968; ψ
&omega; &#969; ω
&thetasym; &#977; ϑ
&upsih; &#978; ϒ
&piv; &#982; ϖ
&bull; &#8226;
&hellip; &#8230;
&prime; &#8242;
&Prime; &#8243;
&oline; &#8254;
&frasl; &#8260;
&weierp; &#8472;
&image; &#8465;
&real; &#8476;
&trade; &#8482;
&alefsym; &#8501;
&larr; &#8592;
&uarr; &#8593;
&rarr; &#8594;
&darr; &#8595;
&harr; &#8596;
&crarr; &#8629;
&lArr; &#8656;
&uArr; &#8657;
&rArr; &#8658;
&dArr; &#8659;
&hArr; &#8660;
&forall; &#8704;
&part; &#8706;
&exist; &#8707;
&empty; &#8709;
&nabla; &#8711;
&isin; &#8712;
&notin; &#8713;
&ni; &#8715;
&prod; &#8719;
&sum; &#8721;
&minus; &#8722;
&lowast; &#8727;
&radic; &#8730;
&prop; &#8733;
&infin; &#8734;
&ang; &#8736;
&and; &#8743;
&or; &#8744;
&cap; &#8745;
&cup; &#8746;
&int; &#8747;
&there4; &#8756;
&sim; &#8764;
&cong; &#8773;
&asymp; &#8776;
&ne; &#8800;
&equiv; &#8801;
&le; &#8804;
&ge; &#8805;
&sub; &#8834;
&sup; &#8835;
&nsub; &#8836;
&sube; &#8838;
&supe; &#8839;
&oplus; &#8853;
&otimes; &#8855;
&perp; &#8869;
&sdot; &#8901;
&lceil; &#8968;
&rceil; &#8969;
&lfloor; &#8970;
&rfloor; &#8971;
&lang; &#9001;
&rang; &#9002;
&loz; &#9674;
&spades; &#9824;
&clubs; &#9827;
&hearts; &#9829;
&diams; &#9830;
&ensp; &#8194; (sen aspekto)
&emsp; &#8195; (sen aspekto)
&thinsp; &#8201; (sen aspekto)
&zwnj; &#8204; (sen aspekto)
&zwj; &#8205; (sen aspekto)
&lrm; &#8206; (sen aspekto)
&rlm; &#8207; (sen aspekto)
&ndash; &#8211;
&mdash; &#8212;
&lsquo; &#8216;
&rsquo; &#8217;
&sbquo; &#8218;
&ldquo; &#8220;
&rdquo; &#8221;
&bdquo; &#8222;
&dagger; &#8224;
&Dagger; &#8225;
&permil; &#8240;
&lsaquo; &#8249;
&rsaquo; &#8250;
&euro; &#8364;