兩個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()函數進行解碼

 就完美解決問題了,親自實踐,確實可行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM