开发者在开发微信公众平台的时候,往往需要获取关注公众号的基本用户信息,其中信息中含有中文,但是根据微信官方文档,调用接口返回的用户json字符串信息中含有中文乱码,我们先来看看接口调用地址。
参数 | 描述 |
openid | 用户的唯一标识id可通过网页授权方式获取或者在dopost方法中获取 |
access_token | 调用接口的凭证,点击查看如何获取acess_token |
接口地址https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
调用上述接口后,微信返回用户的json字符串,其实微信一方返回的json字符串编码格式为ISO-8859-1,而我们接收json字符串的时候往往是UTF-8编码这样导致我们双方编码格式不一致进而乱码,所以解决办法就是使得双方编码格式保持一致。
解决办法
String access_token = "";//调用微信获取access_token接口可得 String URL = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN"; // 原始json String jsonResult = HttpUtil.sendGet(URL.replace("OPENID", openid).replace("ACCESS_TOKEN", access_token)); System.out.println(jsonResult); // 编码后的json String json = new String(jsonResult.getBytes("ISO-8859-1"), "UTF-8"); System.out.println(json);
第8行代码把ISO-8859-1转换成UTF-8编码,这样就保持了统一,而且因为微信整体采用UTF-8编码。
此文章本站原创,地址 https://www.vxzsk.com/99.html
转载请注明出处!谢谢!
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程
上一篇:程序员笑话系列(1)别的行业一般看不懂
下一篇:APDU指令是什么(第七课)
^