如何解决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 等主流浏览器均没问题

 

posted @ 2018-09-18 15:43  王小端  阅读(4709)  评论(0编辑  收藏  举报