两个HTML地址栏传中文参数乱码

这个不叫乱码,我非专业。这个是url编码,js本身就是读取url编码的。对于js获取url的中文你可以尝试用escape() encodeURI() encodeURIComponent() decodeURI() 

来使js停止或者转换url编码

 

直接看代码吧。

 第一个html,取名叫  a.html 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>第一页</title>
	</head>
	<body>
		<a href="b.html?id=1&name=胖娘子">点我带参数跳转</a>
	</body>
</html>

  第二个页面,获取参数的页面,取名叫   b.html 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>接受参数页</title>
	</head>
	<body>
		我是接受参数页
	</body>
	<script type="text/javascript" charset="UTF-8">
	    //获取参数方法
		function GetUrlParam(name){
  		  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
		  var r = window.location.search.substr(1).match(reg);
		  if(r!=null)return unescape(r[2]); return null;
		}
		//使用获取参数方法
		var id= GetUrlParam("id");
		var name = GetUrlParam("name");
		console.log("id:"+id+"  name:"+name);
		
	</script>
</html>

  我以上的写法最后得出来的结果是

 

 


 

接下来看看如何解决

   encodeURI()转码,decodeURI()解码  

 

<script type="text/javascript" charset="UTF-8">
	    //获取参数方法
	     function GetUrlParam(name){
  		  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
		  var r = encodeURI(window.location.search).substr(1).match(reg);
		  if(r!=null)return unescape(r[2]); return null;
		}
	   //使用获取参数方法
	    var id= GetUrlParam("id");
		var name = decodeURI(GetUrlParam("name"));
		console.log("id:"+id+"  name:"+name);
</script>

  

最后获取的结果

 


 

用encodeURI()函数对地址栏进行转码,然后用decodeURI()函数进行解码

 就完美解决问题了,亲自实践,确实可行。

 

转载于:https://www.cnblogs.com/pnz-bug/p/6642825.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值