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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM