js對url進行編碼和解碼

2022-09-17 12:09:13 字數 1832 閱讀 1853

只有 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而...