SpringBoot签名乱码

本文根据此文章 微信统一下单接口body为中文,报【签名错误】的解决办法做修改,因为使用的是springboot,所以和他的解决方式不太一样:

问题源于:
生成预付款订单向微信发送xml中, xml含有中文,导致签名失败
搜索其他关于此问题的解决方式都是 转换编码之类,无济于事,顶多是将xml中的中文 转成???从而 成功生成预支付订单id,但是此时 , 你已经将含有???的符号传给微信,导致付款界面就都显示成了你之前转的???

查资料知: tomcat默认的编码方式不是utf-8
如果你的项目没有修改成utf-8就会导致问题的出现
springboot解决方法:
原来的项目启动方式: java -jar XXX.jar
指定编码启动: java -Dfile.encoding=UTF-8 -jar XXX.jar

查看项目的当前编码

String iso8859 = new String(xmlstring.getBytes("iso8859-1"));
String gbk = new String(xmlstring.getBytes("gbk"));
String utf8 = new String(xmlstring.getBytes("utf-8"));
if(iso8859.equals(xmlstring)){
logger.error("当前系统编码:-----------iso8859");
}else if(gbk.equals(xmlstring)){
logger.error("当前系统编码:-----------gbk");
}else if(utf8.equals(xmlstring)){
logger.error("当前系统编码:-----------utf8");
}
---------------------
版权声明:本文为CSDN博主「那一年丶天空很高丶风很清澈」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gentlu/article/details/86626133

posted @ 2019-08-14 16:13  往事、随风つレ  阅读(306)  评论(0编辑  收藏  举报