URI: Uniform ResourceIdentifiers,通用資源標識符瀏覽器
Global對象的encodeURI()和encodeURIComponent()方法能夠對URI進行編碼,以便發送給瀏覽器。有效的URI中不能包含某些字符,例如空格。而這URI編碼方法就能夠對URI進行編碼,它們用特殊的UTF-8編碼替換全部無效的字 符,從而讓瀏覽器可以接受和理解。cookie
其中encodeURI()主要用於整個URI(例如,http://www.jxbh.cn/illegal value.htm),而encode-URIComponent()主要用於對URI中的某一段(例如前面URI中的illegal value.htm)進行編碼。它們的主要區別在於,encodeURI()不會對自己屬於URI的特殊字符進行編碼,例如冒號、正斜槓、問號和井字號;而encodeURIComponent()則會對它發現的任何非標準字符進行編碼。來看下面的例子:
var uri="http://www.jxbh.cn/illegal value.htm#start";
//」http: //www.jxbh.cn/illegal%20value .htm#s tart」
alert(encodeURI (uri)):
//」http% 3A%2F%2Fwww.jxbh.cn%2 Fillegal%2 0value. htm%23 start」
alert( encodaURIComponent (uri));網站
使用encodeURI()編碼後的結果是除了空格以外的其餘字符都原封不動,只有空格被替換成了%20。而encodeURIComponent()方法則會使用對應的編碼替換全部非字母數字字符。這也正是能夠對整個URI使用encodeURI(),而只能對附加在現有URI後面的字符串使用encodeURIComponent()的緣由所在。通常來講,咱們使用encodeURIComponent()方法的時候要比使用encodeURI()更多,由於在實踐中更常見的是對查詢字符串參數而不是對基礎URL進行編碼.編碼
經個人觀測,不少網站的cookie在進行編碼的時候,是encodeURIComponent格式的,因此應該使用decodeURIComponent()進行解碼code