只有 0-9[a-z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不經過編碼直接用於 url。
例如:搜尋的中文關鍵字,複製**之後再貼上就會發現該url已經被轉碼。原理:對除ascii字母、數字、標點符號 @ * _ + - . / 以外的其他字元進行編碼。
編碼:
escape('')//結果:
"escape('張
')//結果:
"%u5f20
"
解碼:
unescape("http%3a")//結果:""unescape("%u5f20")
//結果:"張"
escape 與 unescape多用於單個字串的編碼,當瀏覽器對中文的支援不足時,可以對中文字元單獨編碼
原理:返回編碼為有效的統一資源識別符號 (uri) 的字串,不會被編碼的字元:! @ # $ & * ( ) = : / ; ? + '
encodeuri()是j**ascript中真正用來對url編碼的函式。
編碼:
encodeuri('')//結果:""
解碼:
decodeuri("http%3a")//結果:"http%3a"
原理:對url的組成部分進行個別編碼,而不用於對整個url進行編碼
編碼:
encodeuricomponent('')//結果:"http%3a%2f%2fwww.baidu.com%3fname%3dzhang%40xiao%40jie%26order%3d1"
解碼:
decodeuricomponent("http%3a%2f%2fwww.baidu.com%3fname%3dzhang%40xiao%40jie%26order%3d1")//""
[**]
原理:對除ascii字母、數字、標點符號 @ * _ + - . / 以外的其他字元進行編碼。
編碼:
escape('')//結果:
"escape('張
')//結果:
"%u5f20
"
解碼:
unescape("http%3a")//結果:""unescape("%u5f20")
//結果:"張"
escape 與 unescape多用於單個字串的編碼,當瀏覽器對中文的支援不足時,可以對中文字元單獨編碼
原理:返回編碼為有效的統一資源識別符號 (uri) 的字串,不會被編碼的字元:! @ # $ & * ( ) = : / ; ? + '
encodeuri()是j**ascript中真正用來對url編碼的函式。
編碼:
encodeuri('')//結果:""
解碼:
decodeuri("http%3a")//結果:"http%3a"
原理:對url的組成部分進行個別編碼,而不用於對整個url進行編碼
編碼:
encodeuricomponent('')//結果:"http%3a%2f%2fwww.baidu.com%3fname%3dzhang%40xiao%40jie%26order%3d1"
解碼:
decodeuricomponent("http%3a%2f%2fwww.baidu.com%3fname%3dzhang%40xiao%40jie%26order%3d1")//""
[**]
Python對URL編碼和解碼
在做介面測試時,時常會發現抓取的介面引數中含有這種資料 3d 5b 7b 22mainspucode 22 3a 22spu66668 22 2c 22mainskucode 22 3a 22536963999401508874 當請求資料為字典data 且引數中包含中文或者?等特殊符號時,需要通過...
JS對URL進行轉碼與解碼
用途 用於js對字串編碼 escape 用於整個url編碼 encodeurl 用於引數傳遞編碼 encodeuricomponent 詳解 1.escape 和 unescape escape 不能直接用於url編碼,它的真正作用是返回乙個字元的unicode編碼值。採用unicode字符集對指定...
jscript對URL引數進行編碼與解碼
雖然escape encodeuri encodeuricomponent 三種方法都能對一些影響url完整性的特殊 字元進行過濾。但後兩者是將字串轉換為utf 8的方式來傳輸,解決了頁面編碼不一至導致的亂碼問 題。例如 傳送頁與接受頁的編碼格式 charset 不一致 假設傳送頁面是gb2312而...