I'm trying to do a HTTP POST with a unicode string (u'\xe4\xf6\xfc') as a parameter in Python, but I receive the following error:
UnicodeEncodeError: 'ascii' codec can't encode character
This is to the code used to make the HTTP POST (with httplib2)
http = httplib2.Http()
userInfo = [('Name', u'\xe4\xf6\xfc')]
data = urlencode(userInfo)
resp, content = http.request(url, 'POST', body=data)
Any ideas on how to solve this?
You cannot POST Python Unicode objects directly. You should encode it as a UTF-8 string first:
name = u'\xe4\xf6\xfc'.encode('utf-8')
userInfo = [('Name', name)]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With