UnicodeEncodeError:'ascii'编解码器无法编码字符,Python中进行HTTP POST时出现问题
我正在用Python尝试发送一个包含Unicode字符串(u'\xe4\xf6\xfc')的HTTP POST请求,但我收到了以下错误:
Unicode编码错误:'ascii'编码无法编码这个字符
这是我用来发送HTTP POST请求的代码(使用httplib2库)
http = httplib2.Http()
userInfo = [('Name', u'\xe4\xf6\xfc')]
data = urlencode(userInfo)
resp, content = http.request(url, 'POST', body=data)
有没有什么办法可以解决这个问题?
1 个回答
13
你不能直接发送Python的Unicode对象。你应该先把它编码成UTF-8格式的字符串:
name = u'\xe4\xf6\xfc'.encode('utf-8')
userInfo = [('Name', name)]