在Spring Boot中,使用微信登录接口获取微信用户的信息的时候,获取到的用户如果是中文的时候就会出现乱码的情况,比如是中文微信昵称、中文城市名等等。
开门见山,
原因:微信接口返回的信息采用了ISO-8859-1编码方式,导致中文乱码的现象。
解决过程:
微信获取用户信息接口:
以下是我请求这个没有接口的方式,没有改动之前,如下:
这样经过反序列化之后,得到的用户信息,如果有中文的时候,就会出现乱码的情况,
weChatBrowserLoginUserInfoResponse = objectMapper.readValue(
userInfoStr, WeChatBrowserLoginUserInfoResponse.class);
要解决这个问题,将请求得到的字节数组变为字符串的时候指定编码方式为ISO-8859-1
改动之后的代码为:
这样子就成功解决了获取用户信息中文乱码的情况