一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
From:https://www.cnblogs.com/shuiyi/p/5277233.html
一、這四個(gè)方法的用處
1、用來編碼和解碼URI的
統(tǒng)一資源標(biāo)識(shí)符,或叫做 URI,是用來標(biāo)識(shí)互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁或文件)和怎樣訪問這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四個(gè)用來編碼和解碼 URI 的函數(shù)之外 ECMAScript 語言自身不提供任何使用 URL 的支持。
2、URI組成形式
一個(gè) URI 是由組件分隔符分割的組件序列組成。其一般形式是:
Scheme?:?First?/?Second?;?Third???Fourth
其中斜體的名字代表組件;“:”, “/”, “;”,“?”是當(dāng)作分隔符的保留字符。
3、有和不同?
encodeURI?和?decodeURI?函數(shù)操作的是完整的 URI;這倆函數(shù)假定 URI 中的任何保留字符都有特殊意義,所有不會(huì)編碼它們。
encodeURIComponent?和?decodeURIComponent?函數(shù)操作的是組成 URI 的個(gè)別組件;這倆函數(shù)假定任何保留字符都代表普通文本,所以必須編碼它們,所以它們(保留字符)出現(xiàn)在一個(gè)完整 URI 的組件里面時(shí)不會(huì)被解釋成保留字符了。
以上說明摘自ECMAScript標(biāo)準(zhǔn),為了容易讀懂做了點(diǎn)編輯加工。
4、圖解四個(gè)函數(shù)的不同:
ECMA對這四個(gè)函數(shù)還做了詳細(xì)解釋,可能是為了寫的更邏輯化一些,采用了類似變量配合邏輯的寫法來說明,但是讓初學(xué)者看得云里霧里的特別繞,所以有必要把它寫得更像是人讀的東西……
?
當(dāng) URI 里包含一個(gè)沒在上面列出的字符或有時(shí)不想讓給定的保留字符有特殊意義,那么必須編碼這個(gè)字符。字符被轉(zhuǎn)換成 UTF-8 編碼,首先從 UT??F-16 轉(zhuǎn)換成相應(yīng)的代碼點(diǎn)值的替代。然后返回的字節(jié)序列轉(zhuǎn)換為一個(gè)字符串,每個(gè)字節(jié)用一個(gè)“%xx”形式的轉(zhuǎn)移序列表示。(具體轉(zhuǎn)換規(guī)則可以參考抽象操作Encode和Decode的說明)
總結(jié)
以上是生活随笔為你收集整理的一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 求平方 求开方
- 下一篇: 关于构造函数和this调用的思考