2010-06-24 9 views
10

में HTTP पोस्ट का प्रयास करते समय चरित्र को एन्कोड नहीं कर सकता है। मैं पाइथन में पैरामीटर के रूप में एक यूनिकोड स्ट्रिंग (u '\ xe4 \ xf6 \ xfc') के साथ एक HTTP पोस्ट करने की कोशिश कर रहा हूंयूनिकोड एन्कोड त्रुटि: 'ascii' कोडेक पाइथन

UnicodeEncodeError:, लेकिन मैं निम्न त्रुटि प्राप्त 'ascii' कोडेक चरित्र सांकेतिक शब्दों में बदलना नहीं कर सकते

यह (httplib2 के साथ) HTTP POST बनाने के लिए इस्तेमाल कोड

http = httplib2.Http() 
userInfo = [('Name', u'\xe4\xf6\xfc')] 
data = urlencode(userInfo) 

resp, content = http.request(url, 'POST', body=data) 

किसी भी करने के लिए है इसे हल करने के तरीके पर विचार?

उत्तर

13

आप सीधे पाइथन यूनिकोड ऑब्जेक्ट्स पोस्ट नहीं कर सकते हैं। आपको इसे पहले यूटीएफ -8 स्ट्रिंग के रूप में एन्कोड करना चाहिए:

name = u'\xe4\xf6\xfc'.encode('utf-8') 
userInfo = [('Name', name)] 
+0

पहले एन्कोडिंग के साथ कुछ समस्या थी, लेकिन फिर मैंने इसे इनलाइन किया। इस तरह: userInfo = [('नाम', u '\ xe4 \ xf6 \ xfc'.encode (' utf-8 '))] वैसे भी त्वरित प्रतिक्रिया के लिए धन्यवाद – David

+0

इस पोस्ट का यह बहुत ही समान प्रश्न है, http://stackoverflow.com/questions/1652904/easy-q-unicodeencodeerror-ascii-codec-cant-encode-character – shahjapan

+1

यह सहायक होगा अगर प्रेजेंटप्लिब 2 और प्रेजेंटप्लिब के लिए प्रलेखन इस बाधा का उल्लेख करता है। – chernevik

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

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