escape与encodeURI、encodeURIComponent的区别
比較js中的escape、encodeURI、encodeURIComponent
escape:
?? ?escape是會(huì)除@*_-+./以外的所有標(biāo)點(diǎn)符號(hào)、空格符、特殊符及非ASC碼的所有字符進(jìn)行編碼的函數(shù)。編碼格式為:%XX,如空格是%20,對(duì)于ASC值超過(guò)128的會(huì)用%uXXXX表示。如漢字“好”編碼是%u6FC2%uFFFD
encodeURI:
?? ?encodeURI不會(huì)進(jìn)行編碼的符號(hào)是:
?? ?!@#$&*()_+-=;:',./?~
encodeURIComponent:
?? ?encodeURIComponent不會(huì)進(jìn)行編碼的符號(hào)是:
?? ?!*()_-'.~
區(qū)別與共同:
?? 1、從上面比較可知,encodeURIComponent會(huì)進(jìn)行編碼的符號(hào)比encodeURI多,而且會(huì)把/進(jìn)行編碼,所以不能使用encodeURIComponent對(duì)url進(jìn)行編碼。其時(shí)它的主要用途是對(duì)url的參數(shù)進(jìn)行編碼。
?? 2、三個(gè)函數(shù)編碼的符號(hào)集不同以外,對(duì)于ASC碼的編碼格式都是一樣的。但是對(duì)于雙字節(jié)編碼就不同了。比如:“好”的encodeURI和encodeURIComponent的編碼是%E6%BF%82%EF%BF%BD。
?? ?? 原因是escape是采用ISO Latin字符集進(jìn)行編碼的,而其他兩個(gè)是用UTF-8進(jìn)行編碼的。所以如果想在GBK上的頁(yè)面把參數(shù)傳給UTF-8的頁(yè)面,就要使用后面兩個(gè)了。因?yàn)樗鼈儠?huì)把字符集轉(zhuǎn)成UTF-8再進(jìn)行編碼。
轉(zhuǎn)載于:https://www.cnblogs.com/mengzhongshi/archive/2013/05/14/3077260.html
總結(jié)
以上是生活随笔為你收集整理的escape与encodeURI、encodeURIComponent的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu Ulipad 配置
- 下一篇: 35+非常棒的视差滚动(Parallax