Java公众号开发,推送消息出现中文乱码

发布时间 2024-01-03 11:32:51作者: 卡洛小豆

问题描述

使用wx-java-mp-spring-boot-starter做微信公众号开发,推送中文消息的时候,发现推送消息的文字都变成了问号,
推送文字代码:

WxMpXmlOutMessage.TEXT().content(""登录成功"").fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()).build()

错误情况如下所示:

原因分析

应该是中文编码问题,公众号编码和代码中的编码不一致,
代码中的编码格式为UTF-8
经过查找发现公众号中文字使用的编码格式为:ISO-8859-1

解决方案

先修改字符串的编码格式,再输出

String respMessage = new String("登录成功".getBytes("utf-8"), "ISO-8859-1");
WxMpXmlOutMessage.TEXT().content(respMessage).fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()).build();