1. 背景
    工作中,我方系统需请求另一个系统的接口,并需要对响应信息进行验签处理,我方系统的最新版本2.0和对方系统的最新版本2.0已对接成功。
    项目上我方系统和对方系统均为1.0,对方系统需要升级至2.0,测试时发现验签失败。
    通过在双方系统中添加log,发现现象为:在对方系统中查看请求和响应日志均正常,但我方系统响应日志中有乱码。
  2. 原因
    对方系统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. 代码演示
    3.1 如图所示,encoding属性表示默认编码(ISO-8859-1),apparent_encoding属性表示实际编码(utf-8)。
    在这里插入图片描述
    3.2 概念解释
    在这里插入图片描述
    在这里插入图片描述
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐