Fórum Root.cz

Hlavní témata => Software => Téma založeno: David Strejc 04. 01. 2011, 17:16:18

Název: urldecode PHP / Perl / CP1250
Přispěvatel: David Strejc 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.
Název: Re: urldecode PHP / Perl / CP1250
Přispěvatel: Viktor 04. 01. 2011, 17:53:35
http://perldoc.perl.org/Encode.html ?
Název: Re: urldecode PHP / Perl / CP1250
Přispěvatel: David Strejc 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)
Název: Re: urldecode PHP / Perl / CP1250
Přispěvatel: David Strejc 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