[LUGOS] apache 2.0.45 in č

Metod Kozelj metod.kozelj at lugos.si
Tue May 6 08:53:14 CEST 2003


Howdy!

Tomaz Zupan wrote:

>Apache mi servira strani, ki so narejene v okolju windows (cp 1250) in
>predvidevamo, da bo tudi pričakovana publika večinoma uporabljala to okolje.
>Zato je v
>dokumentih je v glavi vrstica:
><meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> ,
>ki naj bi poskrbel za pravilen prikaz šumnikov. Probleme mi dela č, ki se
>pravilno pokaže samo, če na strežniku vključim AddDefaultCharset
>WINDOWS-1250 ali če vse znake č v html dokumentih zamenjam z &#269;
>

Pravzaprav ni problem v Apachu, temveč v browserjih. No ja, pravzaprav v 
web developerju, ampak ...

Torej, browser dobi od http serverja header

Content-Type: text/html

in temu primerno začne izrisovati html stran s svojim privzetim naborom 
znakov (ki je običajno ISO 8859-1). Potem naleti na meta tag. In potem 
je stvar browserja ali v tem stadiju še zna preklopiti nabor znakov ali 
ne. Po mojih izkušnjah browserji pravilno izberejo nabor znakov, če od 
njih zahtevaš 'refresh' ... (ne reload) strani.

Prava rešitev je, da http server pove pravi nabor znakov. Če imaš na 
strežniku mešanico dokumentov pisanih v različnih naborih znakov, potem 
vsakemu nabori znakov prirediš drugo končnico in potem glede na končnico 
določiš tip datoteke.

Npr. takole:

AddType text/html;charset=iso8859-1 .html
AddType text/html;charset=windows-1250 .htm
AddType text/html;charset=iso8859-2 .html-l2


Predpostavka, da mora http server servirati dokumente z naborom znakov v 
cp1250, ker da bo večina klientov uporabljala to okolje, je dandanašnji, 
milo rečeno, smešna. Vsi moderni browserji podpirajo *standardni* 
razpored znakov (ki je *ISO* 8859-? ali pa *ISO* 10646 za Unicode) in ga 
znajo prekodirati v 'platform specific', ki je primeren za sam prikaz. 
Zato bi bilo bolje, da vse skupaj pretvoriš v, recimo, iso 8859-2 pa še 
v unix varianto (torej konec vrstice le LF, brez CR) da bodo dokumenti 
kakšen byte krajši.

-- 
Peace!
  Mkx

---- perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'





More information about the lugos-list mailing list