目录

今日说码

点滴记录中国代码进程

X

微信公众号接口返回值中文乱码

前言

  用户在网页授权后,根据网页授权code获取用户信息时,请求微信接口获取到的返回值中文乱码,无法使用。后来百度了一下,找到了解决办法,这里记录一下。不过奇怪的是,并非所有项目这个场景下都是乱码,只有这一个项目是乱码,其他的项目正常。并且微信并非只有这一个接口会出现乱码问题,只要有中文返回值的接口,都有可能出现。所以无论微信什么接口,只要是返回值中文乱码,都可以使用以下方案解决。

原因分析

  用户微信使用的编码格式为 ISO-8859-1,并非常用的 utf-8格式。

解决方案

  在获取到微信接口返回值后,将返回值做一次编码格式转换即可。

String userInfoStr = restTemplate.getForObject(userInfoUrl, String.class);
userInfoStr = new String(userInfoStr.getBytes("ISO-8859-1"), "utf-8");

标题:微信公众号接口返回值中文乱码
作者:96XL
地址:https://solo.96xl.top/articles/2022/01/25/1643098295719.html