欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中如何對url進行編碼和解碼

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

js 對url進行編碼和解碼

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

encodeURI和 decodeURI

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

需要注意的是,它不對單引號’編碼。

encodeURIComponent和decodeURIComponent(推薦使用)

它用于對URL的組成部分進行個別編碼,而不用于對整個URL進行編碼。

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

escape 和 unescape

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

js url二次編碼和解碼

問題

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

類似下面這種形式:

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

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

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

URL編碼解碼原理

URL編碼原理:

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

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

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

注意:encodeURI()僅會將特殊字符轉(zhuǎn)化成URL編碼形式,特殊的字符:就是那些不是簡單的七位ASCII,如漢字,中文標(biāo)點,當(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編碼原理:就是編碼的逆過程,不再贅述。

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

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

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

相關(guān)文章

  • HBuilderX開發(fā)一個簡單的微信小程序的實現(xiàn)步驟

    HBuilderX開發(fā)一個簡單的微信小程序的實現(xiàn)步驟

    本文主要介紹了HBuilderX開發(fā)一個簡單的微信小程序的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 20行JS代碼實現(xiàn)網(wǎng)頁刮刮樂效果

    20行JS代碼實現(xiàn)網(wǎng)頁刮刮樂效果

    下面小編就為大家?guī)硪黄?0行JS代碼實現(xiàn)網(wǎng)頁刮刮樂效果。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Javascript調(diào)用C#代碼

    Javascript調(diào)用C#代碼

    Javascript是一種腳本語言,它可以寄宿在各種不同的宿主中實現(xiàn)強大的功能。
    2011-01-01
  • JavaScript設(shè)計模式之責(zé)任鏈模式實例分析

    JavaScript設(shè)計模式之責(zé)任鏈模式實例分析

    這篇文章主要介紹了JavaScript設(shè)計模式之責(zé)任鏈模式,結(jié)合實例形式分析了責(zé)任鏈模式的概念、原理及具體定義與使用技巧,需要的朋友可以參考下
    2019-01-01
  • JS設(shè)計模式之中介者模式使用方法詳解

    JS設(shè)計模式之中介者模式使用方法詳解

    JavaScript中介者模式是一種行為型設(shè)計模式,用于降低多個對象之間的耦合性,在中介者模式中,多個對象之間不直接相互通信,而是通過中介者進行通信, 本文就來給大家詳細的介紹一下JS設(shè)計模式之中介者模式使用方法,需要的朋友可以參考下
    2023-08-08
  • JavaScript中變量、指針和引用功能與操作示例

    JavaScript中變量、指針和引用功能與操作示例

    這篇文章主要介紹了JavaScript中變量、指針和引用功能與操作,結(jié)合實例形式分析了javascript變量、指針與引用的功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-08-08
  • JS實現(xiàn)圖片自動播放效果

    JS實現(xiàn)圖片自動播放效果

    這篇文章主要為大家詳細介紹了JS實現(xiàn)圖片自動播放效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 基于webpack 實用配置方法總結(jié)

    基于webpack 實用配置方法總結(jié)

    下面小編就為大家?guī)硪黄趙ebpack 實用配置方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • wordpress之js庫集合研究介紹

    wordpress之js庫集合研究介紹

    wordpress之js庫集合研究介紹...
    2007-08-08
  • 小程序?qū)崿F(xiàn)錄音功能

    小程序?qū)崿F(xiàn)錄音功能

    這篇文章主要為大家詳細介紹了小程序?qū)崿F(xiàn)錄音功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09

最新評論