URL編碼:escape和encodeURIComponent

escape() 編碼對 UTF-8 支持的不太好,咱們應該用 encodeURI() 或者 encodeURIComponent() 來取代 escape() 。不過 encodeURI() 和 encodeURIComponent() 都須要 IE 5.5 以上才支持,FireFox 則徹底沒有問題。html

        如下是 MSDN 對這三個編碼函數的解釋:服務器

escape(charString) ide

escape 方法返回一個包含 charstring 內容的字符串值(Unicode 格式)。全部空格、標點、重音符號以及任何其餘非 ASCII 字符都用 %xx 編碼替換,其中 xx 等於表示該字符的十六進制數。例如,空格返回爲「%20」。函數

字符值大於 255 的字符以 %uxxxx 格式存儲。編碼

注意 escape 方法不能用來對「統一資源標識符」(URI) 進行編碼。code

encodeURI(URIString)htm

encodeURI 方法返回一個已編碼的 URI。若是將編碼結果傳遞給 decodeURI,則將返回初始的字符串。encodeURI 不對下列字符進行編碼:「:」、「/」、「;」和「?」。請使用 encodeURIComponent 對這些字符進行編碼。資源

encodeURIComponent(encodedURIString)字符串

encodeURIComponent 方法返回一個已編碼的 URI。若是將編碼結果傳遞給 decodeURIComponent,則將返回初始的字符串。由於 encodeURIComponent 方法將對全部字符編碼,請注意,若是該字符串表明一個路徑,例如 /folder1/folder2/default.html,則其中的斜槓也將被編碼,這樣,當該字符串做爲請求發送到 Web 服務器時它將是無效的。若是字符串中包含多個 URI 組件,請使用 encodeURI 方法進行編碼。string

相關文章
相關標籤/搜索