2011-02-07 21 views
6

मुझे "Misère" जैसे विदेशी नामों को एन्कोड करने की आवश्यकता है।ठीक से यूआरएल एन्कोड कैसे करें?

जब मैं कार्य करें:

File "/System/Library/Frameworks/Python.framework/Versions/ 
2.5/lib/python2.5/urllib.py", line 1205, in quote 
    res = map(safe_map.__getitem__, s) 
KeyError: u'\xe8' 

क्या मैं गलत कर रहा हूँ:

urllib2.quote(name) 

मैं एक त्रुटि मिलती है?

उत्तर

12

कोशिश urllib2.quote (s.encode ('UTF8'))

+1

यह काम किया, धन्यवाद! –

0

एक मामूली सुधार @ 苏妍倩 के जवाब देने के लिए विधि कॉल में सुरक्षित अक्षर शामिल होगा। डिफ़ॉल्ट रूप से, urllib2.quote() में केवल /_-. एक सुरक्षित चरित्र के रूप में शामिल है जिसका अर्थ है : जैसे वर्ण परिवर्तित किए जाएंगे, यूआरएल बेकार प्रस्तुत करेंगे।

उदाहरण के लिए:

url = https://www.zomato.com/pittsburgh/caffè-damore-catering-pittsburgh 
print urllib2.quote(url.encode('utf-8')) 
>>> https%3A//www.zomato.com/pittsburgh/caff%C3%A8-damore-catering-pittsburgh 

print urllib2.quote(url.encode('utf-8'),':/') 
>>> https:////www.zomato.com/pittsburgh/caff%C3%A8-damore-catering-pittsburgh 

सूचना URL का https भाग में आउटपुट में मामूली अंतर।

उम्मीद है कि यह किसी और को बचाएगा जब यह मुझे समझने के लिए लिया गया था!

संबंधित मुद्दे