2011-06-21 14 views
17

Próbuję kodować znaki spoza zestawu ASCII, aby umożliwić umieszczenie ich w adresie URL i użycie ich w wersji urlopen. Problem polega na tym, że chcę kodowania jak JavaScript (które na przykład koduje ó jak %C3%B3):Kodowanie znaków w języku Python za pomocą adresu urllib.quote

encodeURIComponent(ó) 
'%C3%B3' 

Ale urllib.quote w deklaracji Pythona ó jak %F3:

urllib.quote(ó) 
'%F3' 

Chcę wiedzieć, jak to osiągnąć kodowanie takie jak javascript: encodeURIComponent w Pythonie, a także jeśli mogę kodować znaki inne niż ISO 8859-1, takie jak chiński. Dzięki!

+0

powiązane: http://stackoverflow.com/questions/6338469/how-to-url-safe-encode-a-string -with-python-and-urllib-quote-is-wrong – geoffspear

Odpowiedz

27

Chcesz się upewnić, że używasz Unicode.

przykład:

import urllib 

s = u"ó" 
print urllib.quote(s.encode("utf-8")) 

Wyjścia:

%C3%B3

+0

dzięki ... jest rozwiązany – Saulpila

Powiązane problemy