UnicodeEncodeError:'ascii'编解码器无法编码字符,Python中进行HTTP POST时出现问题

10 投票
1 回答
12988 浏览
提问于 2025-04-16 00:23

我正在用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)]

撰写回答