直接上code
1、首先在js页面引入jquery.base64.js文件,这个百度一搜就有了
2、java后台解码代码,用的是Jdk自带的类 sun.misc.BASE64Decoder。若MyEclipse没提示找不到这个类的话解决方案为
右健项目名点击build path ---> configure build path ----> 选择libraries 先删除JRESystem Library再增加回来,后重新编辑clean一下就能找到这个类了,如下图
2.1 、java解码代码
/**
* Base64解码
* @param code
* @return
*/
public static String Base64Decoding(String code) {
BASE64Decoder decoder = new BASE64Decoder();
byte[] decoding;
try {
decoding = decoder.decodeBuffer(code);
return new String(decoding,StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
3、 一开如我也是看网上的博客前台直接使用这种方式进行编码
4、测式时直接将编码后的字符直接复制到后台去进行解码,可是解码结果为中文或中文标点符合的内容全是乱码,如下图
5、于是我又在网络上查询解决方法,在经过一个小时后还没有找到解决方法时,突然间我想到,乱码无非就是编码格式不一致导致的吗,我的页面是使用utf-8是为了让它
告诉浏览器,要用utf-8解码,我现在用的是basc64编码,是不是也应该告诉base64我使用的编码格式然后后台再解码呢,一想到这里直接在js的base64构造方法里多加了一个参数,发现他没有报错,并且编码后的字符串也不一样了,变的更长了,我想也许是因为utf-8占用的字节更大,所以它变的更长了吧,如下图
6、于是我立马将使用utf-8编码后的字符串复制到后台进行测式,发现解决一切正党,中文跟中文符号都能正常显示,如下图
7、那么使用这种方式就能解决中文后台解码出现乱码的问题了