两个html间 ,在get下也能正常传参数(中文也不乱码)

摸索这个问题的背景 :

  • a.html页面,要直接向b.html页面传参,如果是数字/字母那就一帆风顺了;
  • 问题是,要传的是"中文字符"参数 ; 这样一来在b页面截取字符串时,就会出现乱码;
  • 如果是在JAVA中,进行编码解码就解决了,可在html中怎么办呢 ?
  • 只有借助JS了, 试想问题应该就是出在URL编码问题上 , 那么就从此下手;
  • 查阅了一些资料 , 解决方案是 : 通过escape格式的编码解码解决 , 核心代码如下 :

A.html页面

function searchButton(){
	var keyword = $("#keyword").val(); // 获取值 :中国
	
	var temp1 =  escape(keyword); // 编码 :%u4E2D%u56FD

//	var temp2 =  unescape(temp1); // 解码 : 中国

	location="searchResult.html?keyword="+temp1; // 带参数
}

B.html页面

$(function() {
	keyword = GetId("keyword");
	alert("URL截取的keyword原始值是:" + keyword); // 中国
			
//	keyword = unescape(temp1); // 解码 (为什么没解码,前面就读取为中国了?)
//	alert("解码后的中文字符是 : "+keyword);
})

// 从URL截获字符串的方法
function GetId(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;
}

小结 :

  • 通过如上JS实现了要求 , 我还有点存疑是 , B页面没有进行解码 ,直接读取就是相应的中文了 ? 这个原因我还没搞明白 ;
  • 后来查了下资料,这么描述的 : escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。这么强大 , 那解码又用在哪呢?

码字不易 , 觉得还好就给个赞 ; 个人感觉这个方法还是很实用的 , 尤其在前后端分离开发的某些场景下 , 还是很需要的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值