我遇到编码问题: 当我在Web浏览器的输入中键入caracter'é'时,它会以%E9的形式发布,并且工作正常。 另一方面,当我尝试使用Python发布请求并请求库时,它将作为%C3%A9发送。
我怎么能解决这个问题?
以下是不起作用的代码
requests.post("http://localhost", message = {"text":'é'})
由于
答案 0 :(得分:3)
%C3%A9
是utf-8编码字符串的url编码版本:
>>> u'é'.encode('utf-8')
'\xc3\xa9'
>>> urllib.quote(u'é'.encode('utf-8'))
'%C3%A9'
使用latin-1
编码(或类似)对字符串进行显式编码:
>>> u'é'.encode('latin1')
'\xe9'
>>> urllib.quote(u'é'.encode('latin-1'))
'%E9'
requests.post("http://localhost", message={"text": u'é'.encode('latin-1')})