我遇到了一个问题,使用requests模块发送请求到一个web服务时出现了困难。我正在使用Windows操作系统下的Python 3.5.1-32位版本。
每当我请求包含类似“á”这样的拉丁重音字符的内容时,我需要明确地将我的字符串变量编码为utf-8。有人能解释一下为什么我需要这样做吗?
以下是我的代码示例:
import requests
headers = { "content-type" : "text/xml;charset=UTF-8" }
url = '....'
body = 'á'
requests.post(url, data=body, headers=headers)
这个方法不起作用,服务器接收到的是转义后的字符版本,但是如果在请求前添加以下内容:
body = body.encode(encoding='utf-8')
它有效。
有人能解释一下为什么这是必要的吗?我的 Python 技术水平较低,花了好一会儿才弄明白这个。