Js的中文乱码编码和java的解码
遇见过2次这样的问题了,每次都纠结了整整一上午,为了新手们不在迷茫,所以把一点小小的经验分享给大家
其实也比较简单,就是在前台进行2次编码,在java后台进行1次解码就可以了, 2次编码也有2种情况,你属于那种情况,自己试试吧
情况1:对请求地址进行2次编码
function clickIt(id,name){
var url =
\"${pageContext.request.contextPath}/IndexAction.do?method=getDepatMent&id=\"+id+\"&departname=\"+name;
情况2:对是中文的参数进行一次编码,再对请求地址进行一次编码 function clickIt(id,name){
var url =
\"${pageContext.request.contextPath}/IndexAction.do?method=getDepatMent&id=\"+id+\"&departname=\"+escape(name);
Java中的解码方式:在情况1和2的编码中的解码方式都是一样的
String departname = cp.getPara(\"departname\");
就这样就不会出现乱码了,解码的时候注意捕获异常。不知道这个方法对你是否实用,反正我是这样处理了,完全的解决了js传参的中文乱码问题,如果有什么问题,或者一些更好的方法希望大家提点意见,呵呵。
departname = StringUtil.isEmpty(departname)? null : departname; try { }
if(departname != null){ }
e1.printStackTrace();
departname =
}
url = encodeURI(url); //编码2次 location.href = url; }
url = encodeURI(url);
url = encodeURI(url);//编码2次 location.href = url;
java.net.URLDecoder.decode(departname,\"UTF-8\");
} catch (UnsupportedEncodingException e1) {