Js的Url中传递中文参数乱码,如何获取Url中参数问题

一、Js获取url中参数的方法:

/*
获取请求url参数数组
 */
function getUrlVars(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function getUrlVar(name){
    return getUrlVars()[name];
}

二、Js的Url中传递中文参数乱码问题

encodeURI编码,decodeURI解码为例。

1、传参页面:

<script type=”text/javascript”>
function send(){
var url = "test01.html";
var userName = $("#userName").html();
window.open(encodeURI(url + "?userName=" + userName)); 
}
</script>

2、 接收参数页面:

<script>
var urlinfo = window.location.href;//获取url
var userName = getUrlVar('userName');//拆分url得到userName參數值
$(“#userName”).html(decodeURI(userName));
</script>


encodeURIComponent编码、decodeURIComponent解码为例

1、传参页面

<script type=”text/javascript”>
function send(){
var url = "test01.html";
var userName = $("#userName").html();
window.open(url + "?userName=" + encodeURIComponent(userName)); 
}
</script>
2 接收参数页面:

<script>
var urlinfo = window.location.href;//获取url
var userName = getUrlVar('userName');//拆分url得到userName參數值
$(“#userName”).html(decodeURIComponent(userName));
</script>

三:Js中escape,unescape,encodeURI,encodeURIComponent区别:

1.传递参数时候使用,encodeURIComponent否则url中很容易被”#”,”?”,”&”等敏感符号隔断。
2.url跳转时候使用,编码用encodeURI,解码用decodeURI。
3.escape() 只是为0-255以外 ASCII字符 做转换工作,转换成的 %u**** 这样的码,如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn 这的码才可以,其它情况下escape,encodeURI,encodeURIComponent编码结果相同,所以为了全球的统一化进程,在用 encodeURIComponent() 或 encodeURI() 代替 escape() 使用吧!








  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值