如何解决js地址栏中传递中文乱码的问题

目标要求:

实现从A页面跳转至B页面,B页面接收A页面通过地址栏传递过来的中文参数,中文不能出现乱码。

A页面部分代码(传递参数):

var title = "这是中文";
var t = encodeURI(encodeURI(title));
window.location.href = "b.html?title=" + t;

 

B页面部分代码(接收参数):

var t = GetQueryString("title"); //获取地址栏参数
var title = decodeURI(t); //只需要转一次码
 
// 利用正则表达式方式,获取地址栏中的的参数值
function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r != null)
        return unescape(r[2]);
    return null;
}

  

关键方法讲解:

1. encodeURI()    函数可把字符串作为URI进行编码

2. decodeURI()    函数可对encodeURI()函数编码过的URI进行解码

 

经过实测IE,Chrome,Fire Fox 等主流浏览器均没问题

本文作者:曲琦

本文链接:https://www.cnblogs.com/123525-m/p/16700445.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   曲琦  阅读(315)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起