最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中如何對(duì)url進(jìn)行編碼和解碼

 更新時(shí)間:2022年11月11日 17:02:03   作者:草字  
這篇文章主要介紹了js中如何對(duì)url進(jìn)行編碼和解碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

js 對(duì)url進(jìn)行編碼和解碼

三種編碼和解碼函數(shù)

encodeURI和 decodeURI

它著眼于對(duì)整個(gè)URL進(jìn)行編碼,因此除了常見(jiàn)的符號(hào)以外,對(duì)其他一些在網(wǎng)址中有特殊含義的符號(hào)"; / ? : @ & = + $ , #",也不進(jìn)行編碼。編碼后,它輸出符號(hào)的utf-8形式,并且在每個(gè)字節(jié)前加上%。

需要注意的是,它不對(duì)單引號(hào)’編碼。

encodeURIComponent和decodeURIComponent(推薦使用)

它用于對(duì)URL的組成部分進(jìn)行個(gè)別編碼,而不用于對(duì)整個(gè)URL進(jìn)行編碼。

因此,"; / ? : @ & = + $ , #",這些在encodeURI()中不被編碼的符號(hào),在encodeURIComponent()中統(tǒng)統(tǒng)會(huì)被編碼

escape 和 unescape

對(duì)除ASCII字母、數(shù)字、標(biāo)點(diǎn)符號(hào) @ * _ + - . / 以外的其他字符進(jìn)行編碼。

js url二次編碼和解碼

問(wèn)題

今天遇到了一個(gè)奇怪的問(wèn)題:在JS中用decodeURI()解析完一串URL編碼后發(fā)現(xiàn)它依舊是URL編碼,看的我一臉懵逼!最后發(fā)現(xiàn)參數(shù)里面竟然是一個(gè)URL二次編碼!

類(lèi)似下面這種形式:

"%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0"

也就是說(shuō)也解碼兩次才能得到原碼,如下:

//編碼結(jié)果:%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0
encodeURI(encodeURI('我愛(ài)你'))
//解碼結(jié)果:我愛(ài)你
decodeURI(decodeURI("%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0"))

URL編碼解碼原理

URL編碼原理:

這個(gè)百度百科上解釋的就很好:URL編碼就是一個(gè)字符ASCII碼的十六進(jìn)制。不過(guò)稍微有些變動(dòng),需要在前面加上“%”。比如:“\”,它的ASCII碼是92,92的十六進(jìn)制是5c,所以“\”的URL編碼就是%5c。

URL二次編碼會(huì)對(duì)生成的編碼再做一次編碼,還拿“\”為例,一次編碼后是“%5c”,再對(duì)“%5c”進(jìn)行編碼得到:“%255c”。

二次編碼其實(shí)就是對(duì)%做了編碼,后面的字母和數(shù)字沒(méi)變,“%”的URL編碼是“%25”,所以二次編碼全都是已%25開(kāi)頭的。

注意:encodeURI()僅會(huì)將特殊字符轉(zhuǎn)化成URL編碼形式,特殊的字符:就是那些不是簡(jiǎn)單的七位ASCII,如漢字,中文標(biāo)點(diǎn),當(dāng)然也包括%[] {}|等特殊字符。例如:

//結(jié)果:123abcABC
encodeURI("123abcABC")
//結(jié)果:"520%E9%9B%AA%E7%8B%90"
encodeURI("520雪狐")
//結(jié)果:"%25%7C%5B%5D%7B%7D"
encodeURI("%|[]{}")

URL編碼原理:就是編碼的逆過(guò)程,不再贅述。

注意:decodeURI也僅對(duì)URL編碼解碼,普通字符解碼后依舊是普通字符,例如:

//結(jié)果:"234"
decodeURI('234')
//結(jié)果:我愛(ài)你
decodeURI("%E6%88%91%E7%88%B1%E4%BD%A0")
//結(jié)果:我愛(ài)你
decodeURI("我愛(ài)你")

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

庄浪县| 岳普湖县| 邵武市| 湖口县| 丹寨县| 义乌市| 雷山县| 如皋市| 无棣县| 东城区| 宁蒗| 赤水市| 察雅县| 海晏县| 石柱| 黄陵县| 新和县| 格尔木市| 麻阳| 中江县| 邵阳市| 松溪县| 中卫市| 额敏县| 浦县| 大庆市| 江都市| 融水| 贞丰县| 宜章县| 和静县| 堆龙德庆县| 安多县| 余干县| 吉林市| 石楼县| 河源市| 绥滨县| 宜宾市| 英超| 三门峡市|