问题描述
项目当中使用了base64加密,然后接口返回的是加密数据,而前端进行解密展示。
在本地前端连接后台访问一切正常,一部署到服务器加密解密就乱码了
解决过程
打开tomcat
后面加上 -Dfile.encoding=“UTF-8”
加完之后发现没有效果。
这是我的加密方法。
/**
* 编码
* @param data
* @return
*/
public static String encodeChar(String date){
final Base64.Encoder encoder = Base64.getEncoder();
return encoder.encodeToString(date.getBytes());
}
通过修改字节的字符集,就解决了。
date.getBytes(“utf-8”)
/**
* 编码(字符串)
* @param data
* @return
* @throws UnsupportedEncodingException
*/
public static String encodeChar(String date){
try {
return Base64.getEncoder().encodeToString(date.getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
总结
当本地没问题,而部署到tomcat有问题的时候,首先就要考虑是否是tomcat配置等出现问题。
再者考虑字符编码格式。