urldecode PHP / Perl / CP1250

David Strejc

urldecode PHP / Perl / CP1250
« kdy: 04. 01. 2011, 17:16:18 »
Zdravím všechny.

Problém je následující:

urlencode('ř');

v PHP mi vrací

%C5%99

ale potřebuju použít funkci urldecode, kde nějaký kouzelník zakódoval 'ř' jako

%F8

Což je zakódováno v CP1250

Nebyl jsem schopen donutit ani PHP ani Perl k tomu, aby schroupli urlencoded string s %F8 a vypsalo se 'ř'

Kdyby mě někdo dokázal nasměrovat, byl bych vděčný.

Díky.


Viktor

Re: urldecode PHP / Perl / CP1250
« Odpověď #1 kdy: 04. 01. 2011, 17:53:35 »

David Strejc

Re: urldecode PHP / Perl / CP1250
« Odpověď #2 kdy: 05. 01. 2011, 07:51:46 »
Bohužel ja mám ty stringy zakódované.
Příklad:

Z%E1kalom%ECr

z tohoto potřebuju dostat slovo:

Zákaloměr

což se mi ani pomocí PHP ani pomocí Perlu nedaří.
Díky za jakoukoli pomoc ;o)

David Strejc

Re: urldecode PHP / Perl / CP1250
« Odpověď #3 kdy: 05. 01. 2011, 10:00:09 »
Jen kdyby to někoho zajímalo, tak jsem nakonec vyřešil problém takhle:

Kód: [Vybrat]
#!/usr/local/bin/python


import sys
import urllib2
from BeautifulSoup import BeautifulStoneSoup

string = sys.argv[1]

to_decode = urllib2.unquote(string).decode('cp1250')
decoded = BeautifulStoneSoup(to_decode,convertEntities=BeautifulStoneSoup.HTML_ENTITIES)

print decoded