兩個HTML地址欄傳中文參數亂碼

這個不叫亂碼,我非專業。這個是url編碼,js自己就是讀取url編碼的。對於js獲取url的中文你能夠嘗試用escape() encodeURI() encodeURIComponent() decodeURI() javascript

來使js中止或者轉換url編碼html

 

直接看代碼吧。java

 第一個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>

  我以上的寫法最後得出來的結果是url

 

 


 

接下來看看如何解決spa

   encodeURI()轉碼,decodeURI()解碼  code

 

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

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

相關文章
相關標籤/搜索