項目中遇到將中文從前台傳到后台過程中,出現亂碼,一番嘗試之后,均是亂碼,然后嘗試在js代碼中先進行base64加密,然后在Java中再進行解密,完美的解決了亂碼問題,步驟如下
一,html頁面引入jQuery.base64.js 下載地址如下:點擊打開鏈接
二,js代碼中添加如下代碼
//比如從頁面獲得用戶名如下(中英文均可) var userName = $("#userName").val(); //然后進行base64加密 var userNameBase64=encodeBase64(userName); //最后將加密后的userNameBase64傳到后台即可 //加密方法。沒有過濾首尾空格,即沒有trim. //加密可以加密N次,對應解密N次就可以獲取明文 function encodeBase64(mingwen,times){ var code=""; var num=1; if(typeof times=='undefined'||times==null||times==""){ num=1; }else{ var vt=times+""; num=parseInt(vt); } if(typeof mingwen=='undefined'||mingwen==null||mingwen==""){ }else{ $.base64.utf8encode = true; code=mingwen; for(var i=0;i<num;i++){ code=$.base64.btoa(code); } } return code; };
三,java控制層進行解密
首先引入base64的類:import org.apache.commons.codec.binary.Base64; 代碼如下
//進行解碼,userNameBase64是你獲得的加密后的用戶名,下面進行解密 String userNameBase64=""; byte[] userNameByte = Base64.decodeBase64(userNameBase64.getBytes("UTF-8")); String userName = new String(userNameByte));//獲得解密后的用戶名
到此就完成整個前台進行base64加密,后台進行base64解密的整個過程.