Czy istnieje sposób w Pythonie do przejścia z tego->% CE% B1% CE% BB% 20 do tego: "αλ", który jest jego rzeczywistą reprezentacją ?Przekształć ciąg URL w zwykły ciąg znaków w pythonie (% 20 na spację itp.)
Z góry dzięki!
Czy istnieje sposób w Pythonie do przejścia z tego->% CE% B1% CE% BB% 20 do tego: "αλ", który jest jego rzeczywistą reprezentacją ?Przekształć ciąg URL w zwykły ciąg znaków w pythonie (% 20 na spację itp.)
Z góry dzięki!
dla Pythona 2:
>>> import urllib2
>>> print urllib2.unquote("%CE%B1%CE%BB%20")
αλ
dla Pythona 3:
>>> from urllib.parse import unquote
>>> print(unquote("%CE%B1%CE%BB%20"))
αλ
A oto kod, który działa we wszystkich wersjach:
try:
from urllib import unquote
except ImportError:
from urllib.parse import unquote
print(unquote("%CE%B1%CE%BB%20"))
wielkie dzięki! to zrobiło dokładnie to, co chciałem! – hakermania
Dla ** Python 3 **: 'import urllib.request'' urllib.request.unquote (...) ' – user136036
Istnieją dwa kodowania w grają. Twój ciąg został najpierw zakodowany jako UTF-8, a następnie każdy bajt został percent-encoded.
Aby uzyskać oryginalny łańcuch z powrotem trzeba najpierw cytatu go, a następnie dekodować go:
>>> import urllib
>>> s = '%CE%B1%CE%BB%20'
>>> result = urllib.unquote(s).decode('utf8')
>>> print result
αλ
Należy pamiętać, że trzeba włączoną Unicode konsoli w celu wyświetlenia wartości (jeśli pojawi się błąd z instrukcja drukowania, spróbuj uruchomić ją w IDLE).
wielkie dzięki! dekodowanie ("utf8") było dla mnie bezużyteczne. nieokreślony (a) wykonał zadanie! – hakermania
to nie działa. – Frank
Ale tak jest. Próbowałem go po bezpiecznej stronie (IDLE, py2.7) –
Co masz na myśli przez "prawdziwą reprezentację"? –