JS中URL編碼與.net URL解碼

javascript函數的體例:


    encodeURI("url地點")//編碼


    decodeURI("url地點")//解碼


  asp.net的體例:


    Server.UrlEncode("url地點")//編碼


    Server.UrlDecode("url地點")//解碼


  ps:可以用js編碼.net解碼.也就是它們編碼解碼體例是一樣的.它們的返回值都是編碼或解碼後的URL字符串.


  JS編碼,C#解碼


  利用JS對URL中的特殊字符的URL編碼,函數是encodeURIComponent,這個函數編碼等於C#中的Server.UrlEncode體例。


  在C#中,利用Request.QueryString[""].ToString()可以直接對編碼後的字符串進行解碼,也可利用Server.UrlDecode體例進行解碼。


  在C#中,可利用Request.Url.OriginalString來得到URL,假定利用Request.Url.ToString(),得到到的地點則是解碼過的。


  在C#中SubString中的第二個參數是要得到的字符的長度,而JS中則表現竣事字符的地位。


  JS:var u=encodeURIComponent(unit);


  C#:Server.UrlDecode(Request["unit"]);


  網上查到的全都是escape,和必要的編碼不是一回事,好不輕易找到的成果。


  生存下來以備以後利用。


  js對筆墨舉辦編碼觸及3個函數:escape,encodeURI,encodeURIComponent,


  相應3個解碼函數:,decodeURI,decodeURIComponent


   


  1、 轉達參數時必要利用encodeURIComponent,如許組合的url纔不會被#等特殊字符截斷。 


  比喻:


  2、 舉辦url跳轉時可以團體利用encodeURI


  比喻:Location.href="/encodeURI"("http://cang.百度.com/do/s?word=百度&ct=21");


  3、 js利用數據時可利用escape


  比喻:搜躲中history記載。


  4、 escape對0-255以外的unicode值舉辦編碼時輸出%u****格式,別的環境下escape,encodeURI,encodeURIComponent編碼成果不異。


  最多利用的應爲encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,以是假定給背景轉達參數必要利用encodeURIComponent時必要背景解碼對utf-8撐持(form中的編碼體例和當前頁面編碼體例不異)


  escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z


  encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z


  encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z


  根據闡明 我必要的是encodeURIComponent函數





2011-11-08 12:33:12|  分類: JavaScript |  標籤:url編碼  url解碼  |舉報|字號 訂閱

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