jquery url中文乱码问题怎么解决?

jquery url中文乱码问题怎么解决?下面本篇文章给大家介绍一下jquery URL参数中文乱码问题的解决方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

jquery URL参数中文乱码问题的解决方法

方法一、正则分析法

function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);  //获取url中"?"符后的字符串并正则匹配            
    var context = "";             
    if (r != null)
        context = r[2];             
	reg = null;             
	r = null; 
    return context == null || context == "" || context == "undefined" ? "" : context;         
}

调用方法:

alert(GetQueryString("参数名1"));

方法二、使用encodeURI() 方法

encodeURI() 方法可把字符串作为 URI 进行编码,转码之后就不会乱码,同时如果传递参数中包含&、=等特殊字符转码之后不会在接受参数页面出现错误截取。必须进行两次编码,一次解码。

menu_manage_add.html?id=' + (id || '') + '&name=' + (name ? encodeURI(encodeURI(name)) : '')

decodeURI()方法可以解码。

decodeURI(getQueryString('name') || '')

方法三、

function GetRequest() { 
var url = location.search; //获取url中"?"符后的字串 
var theRequest = new Object(); 
if (url.indexOf("?") != -1) { 
var str = url.substr(1); 
strs = str.split("&"); 
for(var i = 0; i < strs.length; i ++) { 
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); 
} 
} 
return theRequest; 
}

调用方法:

var Request = new Object(); 
Request = GetRequest(); 
var 参数1,参数2; 
参数1 = Request['参数1']; 
参数2 = Request['参数2'];

如果参数中含有中文字符,注意转编码和解码:

1、传参页面

location.href = "${ctx}/web/resourceList?u=admin&keyword=" + encodeURI($("#keyword").val());

2、接收参数页面

decodeURI(GetQueryString("keyword"))

更多web前端知识,请查阅 HTML中文网 !!

以上就是jquery url中文乱码问题怎么解决?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读