HTML獲取鏈接中的參數(解決中文亂碼問題)

這是之前在網上找的一個HTML頁面獲取鏈接後面的參數的例子,本人覺得寫的很好,一直在用,下面粘貼上js源碼:

var LocString=String(window.document.location.href);
 function GetQueryString(str){
 var rs=new RegExp("(^|)"+str+"=([^&]*)(&|$)","gi").exec(LocString),tmp;
 if(tmp=rs)return tmp[2];
 return "沒有這個參數";
 }
 alert("日記名稱:"+GetQueryString("name"));
 alert("分類編號:"+GetQueryString("hehe"));
 alert("所在頁數:"+GetQueryString("hh"));

相信大家一看就懂了,但是這裏面還涉及到一個問題就是如果鏈接中存在中文的話,會自動被轉碼。
取中文參數需要解碼,比如上面的日記名稱如果是中文的話:

var name= decodeURI(GetQueryString("name"));
alert("日記名稱:"+name);

這樣alert的值纔是中文的。順便普及兩個知識點,上面說的鏈接中的中文會被自動編碼。其實我們也可以自己手動進行編碼,防止在中文數據在傳輸變亂碼。
這裏就涉及到java和js的兩種轉碼方式,其實用的方法都是一樣的。
Java方法:

java.net.URLDecoder.decode(URIString, "UTF-8");  //按照utf-8進行解碼
java.net.URLEncoder.encode(URIString, "UTF-8");  //按照utf-8進行編碼

js方法

decodeURI()  //解碼
encodeURI()  //編碼

這裏encodeURI()方法的結果和鏈接裏面自動編碼的結果是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章