servlet通过url传递中文给js

java代码:

   先将中文转为utf-8

String seccessUrl="showUserInfo";
String str="修改成功";
String msg=URLEncoder.encode(str, "UTF-8");
				
response.sendRedirect("success.jsp?url="+seccessUrl+"&msg="+msg);

js代码:

   先解析url地址,注意这里使用“decodeURI”函数。

 //解决办法:最后的return,将解码方式unscape换为decodeURI
  //原因:浏览器会将url中的中文参数进行encodeURI编码,所以要通过js使用decodeURI进行解码

/* 解析 servlet传过来的字符串*/
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg); //匹配目标参数
    if (r != null) return decodeURI(r[2]); return null; //返回参数值
  }

再获取url中的指定参数:

window.οnlοad=function(){ 
	var url=getUrlParam('url');
	var msg=getUrlParam('msg');
	layer.open({
		 content:msg ,
		 title: '提示框',				
		 icon:1,	
		 end: function () {
			 location.href=url;
		}
	});
}  

你可能感兴趣的:(JavaScript,Java,ulr中文乱码,servlet传递中文给js)