MSIE5 a heski znaky v cestl

Petr Lampa lampa at fee.vutbr.cz
Wed Mar 8 10:51:42 CET 2000


On Wed, Mar 08, 2000 at 09:28:09AM +0100, Jiří Kuchta wrote:
> Dne  7 Mar 00 v 17:25, napsal(a) Bohumil Michal:
> 
> >
> > Kdyz jsem v MSIE 5.01 v Nastroje->Moznosti site->Upresnit odskrtl
> > polozku "Adresy URL posilat vzdy ve formatu UTF-8", tak to fungovalo
> > taky. Takze jedina vec je, ze pro tento ucel nevyhovuje implicitni
> > nastaveni. Proto prece neni MSIE b**bej - nebo chcete oznacit za b**bej
> > browser, ktery implicitne nema nastaveny PROXY server, bez nehoz
> > nemuzete do Internetu?
> >
> > Prave kvuli temto potizim je patrne, ze takova URL jsou pekna
> > zhovadilost. Pro takove pripady by bylo UTF-8 lepsi - kdyz je to s s
> > hackem, tak je to stejne v jakemkoliv kodu (kdyz je jenom jeden, ze).
> 
> Tak teď tomu přestávám rozumět. Myslel jse, že implicitní nastavení
> UTF je to nejlepší a musí vždy chodit. Kde je v popsaném příkladě
> zádrhel? To server nerozumí UTF, nebo to MSIE špatně zakódoval nebo
> kde je ten zakopaný pes ?

Prvni je v tom, ze URL musi obsahovat dle RFC2396 pouze zobrazitelne ASCII 
znaky.  Vse ostatni musi byt zakodovano pomoci %XX, napr:
<a href="http://www.fee.vutbr.cz/pub/%ec%be%b9%ec%e8%fd%ec%b9%e8%ec%b9">
(coz je ěžšěčýěščěš). Apache to tak dela, pokud generuje index adresare
a je tam takovyto podivny soubor, vygeneruje <A HREF spravne zakodovany.
Pokud jej klient vezme a posle serveru zpet, mel by dostat dokument
ěžšěčýěščěš a vubec nezalezi na tom, v jakem kodu to jmeno je (je to
cerna skrinka). MSIE by nemel vygenerovat URL, ktere obsahuje neASCII
znaky. Ovsem tim by zrejme MS prestal fungovat a tak je to tak, jak
bylo popsano. 

Druhy problem je v kodu - pokud by MSIE neASCII znaky posilal spravne
zakodovane, pak by je dle soucasnych doporuceni mel nejdrive
prevest do UTF-8 a pak zakodovat pomoci %XX (viz RFC2718, kap. 2.2.5).

Jinak viz take HTML4.0:

B.2.1 Non-ASCII characters in URI attribute values

Although URIs do not contain non-ASCII values (see [URI], section 2.1) 
authors sometimes specify them in attribute values expecting URIs 
(i.e., defined with %URI; in the DTD). For instance, the following href 
value is illegal:

<A href="http://foo.org/Hákon">...</A>

We recommend that user agents adopt the following convention for 
handling non-ASCII characters in such cases:

1. Represent each character in UTF-8 (see [RFC2279]) as one or more bytes. 
2. Escape these bytes with the URI escaping mechanism (i.e., by converting 
   each byte to %HH, where HH is the hexadecimal notation of the byte value). 
This procedure results in a syntactically legal URI (as defined in [RFC1738], 
section 2.2 or [RFC2141], section 2) that is independent of the character 
encoding to which the HTML document carrying the URI may have been transcoded.

Jinak viz take http://www.w3.org/International/O-URL-and-ident.html

							Petr Lampa

-- 
Department of Computer Science and Engineering  E-mail: lampa at fee.vutbr.cz
Faculty of El. Engineering and Comp. Science    Phone: (+420 5) 4114-1225
Brno University of Technology                   Fax:  (+420 5) 4114-1270
Bozetechova 2, 612 66 Brno, Czech Republic      Web: http://www.fee.vutbr.cz/




More information about the net mailing list