Base64加密解密中文乱码问题诡异原因之一

Base64加密解密中文乱码问题诡异原因之一

当进行Base64加密和解密时如果没有指定编码格式,默认会使用环境的编码格式,而在window环境下运行jar包默认编码是GBK;linux默认编码为utf-8,idea中编码可以根据自己情况按需设置,但需要注意的是,当加密和解密程序不在同一个项目中时,需要保证编码格式的一致,此时最好是指定一种统一的编码,使之不受环境影响.

解决方式一:加密解密指定统一编码格式

new String(Base64.decodeBase64(appDto.getXml()),"UTF-8")
Base64.encodeBase64String(wxMsgDto.getRawMsg().getBytes("UTF-8"))

解决方式二:运行jar包时指定环境默认的编码格式(未验证)

java -Dfile.encoding=utf-8 -jar XXX.jar

你可能感兴趣的:(笔记)