今天在用jquery进行html的页面跳转的时候,需要用url进行携带参数,但是却发现中文乱码了!在网上找到了一篇博客,完美解决了问题~
感谢博主Cool - Colbru
原文链接:链接
一、传递参数页面.html
<script type="text/javascript">
var name = 'abc'; //字符串英文
var num = 998; //数字
var cla= '电脑'; //中文
var _t = encodeURI(encodeURI(cla));
//中文需要进行两次encodeURI转码( encodeURI:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。)
window.location.href = "../aa.html?name=" + name(字符串) + "&num=num (数字)" + "&cla=_t (中文)";
</script>
二、接收参数页面.html
(最终页面地址:…/aa.html?name=abc&num=998&cla=%25E7%2594%25B5%25E8%2584%2591)
<script type="text/javascript">
//获取地址参数
var _name = getQueryString("name");
var _num=getQueryString("num");
var _t = getQueryString("cla"); //此为中文参数,需转码
var title = decodeURI(_t); //只需要转一次码
console.log(title);//此处打印出来是中文。
//此处是获取到携带的参数的方法!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function getQueryString(name) {
//正则表达式,获取地址中的参数
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
</script>