Python requests.Response对象 属性text的值中文显示乱码原因分析
·
- 背景
工作中,我方系统需请求另一个系统的接口,并需要对响应信息进行验签处理,我方系统的最新版本2.0和对方系统的最新版本2.0已对接成功。
项目上我方系统和对方系统均为1.0,对方系统需要升级至2.0,测试时发现验签失败。
通过在双方系统中添加log,发现现象为:在对方系统中查看请求和响应日志均正常,但我方系统响应日志中有乱码。 - 原因
对方系统1.0使用了Tomcat,响应头设置了charset;
2.0不再使用Tomcat,响应头未设置charset;
我方系统1.0程序为response.text;
2.0改为了response.content.decode(‘utf-8’);
因为text没从响应头中获取到charset,默认使用ISO编码,无法解析utf-8编码的中文。 - 代码演示
3.1 如图所示,encoding属性表示默认编码(ISO-8859-1),apparent_encoding属性表示实际编码(utf-8)。
3.2 概念解释

更多推荐
所有评论(0)