Portál AbcLinuxu, 10. května 2025 08:19

Dotaz: kodovanie url Mozilla vs IE

15.6.2008 22:57 dusan456 | skóre: 12 | Poprad
kodovanie url Mozilla vs IE
Přečteno: 539×
Odpovědět | Admin
Zdravim,

mam problem s kodovanim url v IE, ak zadam do url parameter "pař"
http://domena.sk/subor.php?search=pař
tak PHP v IE
echo urlencode($search) //je pa%F8
PHP v Mozille
echo urlencode($search) //je pa%C5%99
Cize, ak spravne tomu rozumiem písmeno ř ma v prvom pripade nespravne 1 bit a v druhom spravne 2 bity.

Konkretne v mojom pripade javascript vola externy subor.php aj s parametrom search. V Mozille mi to funguje, ale neviem si poradit s IE.

Nevedel by niekto poradit? Dakujem
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.6.2008 23:10 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rada je jednoduchá: nepoužívat GET, používat POST.

Pokud je nutné mít jedno url, tak trochu složitější: zakódovat data do ASCII přesně daným způsobem. Například BASE64 na řetězec v UTF8.
16.6.2008 12:17 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Rada je jednoduchá: nepoužívat GET, používat POST.
Způsobuje v IE další problém, přinejmenším s tlačítkem Zpět, pokud je v hlavičkách zakázané cachování, a v daném případě navíc porušuje sémantiku POSTu.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
15.6.2008 23:30 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na IE licenci nemám, ale mohlo by pmoci nastavit elementu form atribut enctype na multipart/form-data.

Napoví také tento skript:
$ php -r "echo iconv('windows-1250', 'utf-8', urldecode('pa%F8'));"
pař
Pokud tedy nastavení enctype nepomůže a stránky jsou v cp1250, předělal bych je do unicode s kódováním utf-8.
Only Sith deals in absolutes.
16.6.2008 00:17 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Praveze vsetko je v utf8, nechapem, co tam robi windows-1250??

Urobim to asi s iconv, ale ako zistim v php, v akom kodovani je $search, ci je potrebne pouzit iconv, alebo nie?
16.6.2008 01:04 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Tak som dal s url odoslat aj a=ř

a potom zistim co ukaze urlencode($a) a podla toho sa vzdy podla potreby pouzije/nepouzije iconv()

Dakujem za rady
16.6.2008 11:30 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Iconvem jsem jen demonstroval, že IE odeslal formulář v jiném kódování. Zařiďte se podle rady Filipa Jirsáka a stránku mějte celou v UTF-8. Konvertovat znakové sady v get je nesmysl.
Only Sith deals in absolutes.
16.6.2008 22:02 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Zistil som zaujimavu vec, zadal som rovnaky dotaz priamo do prehliadacov, v Mozille a v IE, vysledky su rozdielne.

www.domena.com/subor.php?search=ř
//toto je subor.php
<HTML>
<HEAD>
<TITLE>test</TITLE>
<META http-equiv="content-type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<?
$search=urlencode($search);
echo $search;   //vysledok je: Mozilla %C5%99    ?????    IE %F8
?>
</BODY>
</HTML>
Inac v mojom pripade mam na utf-8 stranke tento javascript (pouzil som ho ako vzor, nie je to moja stranka), ktory dostava vysledky zo suboru natahni.php, ktory je tiez v utf-8 a aj texty v mysql su v utf-8.

Jedina vec, co ma napada, je, ze by to bolo mozne v javascripte uz definovat nejako, aby sa pouzilo utf-8, lenze javascript neovladam, takze tato moznost mi odpada.

Cize ostava mi jedine to urobit pomocou iconv v natahni.php, ine funkcne riesenie nevidim.
17.6.2008 08:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
JavaScript se podle mne také interpretuje v kódování, v jakém je stránka – ale mám pocit, že některý prohlížeč zase JS interpretoval vždy v UTF-8. Jinak důležité je kódování, které pošle v hlavičce Content-Type server, tag <meta> v HTML souboru měl sloužit pouze k tomu, aby měl server kde tuhle informaci vzít – a nechávat prohlížeč kódování zjišťovat z tohoto tagu není moc rozumné.
17.6.2008 10:07 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
:-) moc rozumné nie je ani dávať vyššiu prioritu prípone ako Content-Type ... a predsa aj taký software bohužiaľ existuje
16.6.2008 08:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: kodovanie url Mozilla vs IE
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pro HTTP URL je stanoveno, jakým způsobem se mají překódovat „speciální“ znaky, bohužel je to stanoveno jako překódování bajtů a není určeno, v jaké znakové sadě se mají brát výchozí znaky. Pouze existuje doporučení, any to bylo UTF-8. Firefox se tím řídí, MSIE jde někde v nastavení přepnout, aby se choval také tak. Jinak MSIE používá kódování, ve kterém je aktuálně zobrazená stránka (což se týká odkazů přímo ve stránce). Jak kóduje znaky zadané přímo do adresního řádku z hlavy nevím. Nejjednodušíí je podle mne udělat celý web v UTF-8.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.