js escape, encodeURI, encodeURIComponent

 escape,   encodeURI,   encodeURIComponentjava

1)基本介紹數組

js 對文字進行編碼涉及3個函數:escape,encodeURI,encodeURIComponent,函數

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


2)用途url

一、   傳遞參數時須要使用encodeURIComponent,這樣組合的url纔不會被#等特殊字符截斷。                            spa

    例如:"http://www.baidu.com?name="+encodeURIComponent(value);.net

二、   進行url跳轉時能夠總體使用encodeURIcode

    例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21");orm

三、   js使用數據時能夠使用escapeutf-8

    例如:對數據簡單的操做時。

四、   escape對0-255之外的unicode值進行編碼時輸出%u****格式,其它狀況下escape,encodeURI,encodeURIComponent編碼結果相同。


3)區別

一、    encodeURIComponent

    將文本字符串編碼爲一個統一資源標識符 (URI) 的一個有效組件。他會將URL的路徑分隔符也編碼,因此,他只適合編碼參數的值

二、    encodeURI

    返回編碼爲有效的統一資源標識符 (URI) 的字符串,以上是一個參數組件,而這裏是一個有效的URL,由於他不對URL特定分隔符編碼

三、    escape

    某些字符被替換成了十六進制的轉義序列,這個方法不支持被使用,由於壓根就沒有什麼用武之地。

   

 4)經驗
一、    最多使用的應爲encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,因此若是給後臺傳遞參數須要使用encodeURIComponent時須要後臺解碼對utf-8支持(form中的編碼方式和當前頁面編碼方式相同),後臺是直接使用request.getParameter

獲取,而不須要其餘轉換,然而,後臺能夠使用 java.net.URLEncoder.encode(value,"utf-8")達到與encodeURIComponent(value)相同效果

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

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

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

相關文章
相關標籤/搜索