HCLAB

python3 requests的post请求参数包含中文报错

2021-05-25  本文已影响0人  肉团先生
is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

问题指明:post请求中文,无法进行编码,需要对参数进行“utf-8”的编码

尝试:按报错进行解决:

response=requests.request("POST", url, data=payload.encode("utf-8"), headers=headers)

出现问题:返回的response的中文数据为乱码

中文乱码

相当乱码的话,应该是编码不匹配的问题,尝试解决:

print(response.text.encode("utf-8"))

结果这乱码更加摸不着头脑了:


encode("utf-8")乱码

这个问题,一直弄了我一个晚上,太困睡觉,起床后,直到这篇解决我的问题:python 设置requests 编码,完美解决中文乱码问题

response.enconding="utf-8"
print(response.text)

拓展:特别注意-requests的请求头header,一些设置编码的参数问题:

请求头:header:
'accept-encoding': "gzip, deflate, br",

这个请求头直接印象下面乱码:


image.png

解决分析参考: 从python爬虫引发出的gzip,deflate,sdch,br压缩算法分析

就因为这个,让我弄了一晚,得到的经验是:在测试bug的时候,尽量减少变量,能不要的,就不要

参考

上一篇 下一篇

猜你喜欢

热点阅读