js 處理URL實(shí)用技巧
更新時(shí)間:2010年11月23日 21:19:11 作者:
escape()、encodeURI()、encodeURIComponent()三種方法都能對(duì)一些影響URL完整性的特殊字符進(jìn)行過(guò)濾。
但后兩者是將字符串轉(zhuǎn)換為UTF-8的方式來(lái)傳輸,解決了頁(yè)面編碼不一至導(dǎo)致的亂碼問(wèn)題。
例如:發(fā)送頁(yè)與接受頁(yè)的編碼格式(Charset)不一致(假設(shè)發(fā)送頁(yè)面是GB2312而接收頁(yè)面編碼是UTF-8),使用escape()轉(zhuǎn)換傳輸中文字串就會(huì)出現(xiàn)亂碼問(wèn)題。
以下是JS下對(duì)URL進(jìn)行編/解碼的各種方法:
escape方法:就對(duì)@*+/ A-Z 0-9 a-z這些字符不編碼,其它非ASCII字符都會(huì)編碼以%XX編碼替換,解碼使用unescape,escape 方法不能用來(lái)對(duì)“統(tǒng)一資源標(biāo)識(shí)符”(URI) 進(jìn)行編碼。對(duì)其編碼應(yīng)使用 encodeURI 和encodeURIComponent 方法。encodeURI():對(duì)! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都會(huì)被編碼,解碼使用decodeURI();
如果想使更多的字會(huì)被編碼,例:/..,請(qǐng)使用encodeURIComponent()方法,被此方法編碼后,參數(shù)傳遞給服務(wù)器就是一種無(wú)效的字符,解碼使用decodeURIComponent()
例如:發(fā)送頁(yè)與接受頁(yè)的編碼格式(Charset)不一致(假設(shè)發(fā)送頁(yè)面是GB2312而接收頁(yè)面編碼是UTF-8),使用escape()轉(zhuǎn)換傳輸中文字串就會(huì)出現(xiàn)亂碼問(wèn)題。
以下是JS下對(duì)URL進(jìn)行編/解碼的各種方法:
escape方法:就對(duì)@*+/ A-Z 0-9 a-z這些字符不編碼,其它非ASCII字符都會(huì)編碼以%XX編碼替換,解碼使用unescape,escape 方法不能用來(lái)對(duì)“統(tǒng)一資源標(biāo)識(shí)符”(URI) 進(jìn)行編碼。對(duì)其編碼應(yīng)使用 encodeURI 和encodeURIComponent 方法。encodeURI():對(duì)! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都會(huì)被編碼,解碼使用decodeURI();
如果想使更多的字會(huì)被編碼,例:/..,請(qǐng)使用encodeURIComponent()方法,被此方法編碼后,參數(shù)傳遞給服務(wù)器就是一種無(wú)效的字符,解碼使用decodeURIComponent()
相關(guān)文章
JavaScript中json數(shù)組查找數(shù)據(jù)的幾種方式(含模糊查找)
這篇文章主要給大家介紹了關(guān)于JavaScript中json數(shù)組查找數(shù)據(jù)的幾種方式,文中包括模糊查找,文中給出了詳細(xì)的代碼示例,對(duì)大家學(xué)習(xí)或者使用json具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
JS操作COOKIE實(shí)現(xiàn)備忘記錄的方法
這篇文章主要介紹了JS操作COOKIE實(shí)現(xiàn)備忘記錄的方法,涉及JavaScript針對(duì)cookie的讀寫(xiě)操作相關(guān)技巧,需要的朋友可以參考下2016-04-04
JavaScript調(diào)用ajax獲取文本文件內(nèi)容實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript調(diào)用ajax獲取文本文件內(nèi)容的方法,需要的朋友可以參考下2014-03-03
bootstrap實(shí)現(xiàn)每隔5秒自動(dòng)輪播效果
這篇文章主要介紹了bootstrap實(shí)現(xiàn)每隔5秒自動(dòng)輪播效果,可以自己設(shè)置輪播間隔時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
關(guān)于ES6尾調(diào)用優(yōu)化的使用
這篇文章主要介紹了關(guān)于ES6尾調(diào)用優(yōu)化的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
JavaScript 節(jié)流函數(shù) Throttle 詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript 節(jié)流函數(shù) Throttle,感興趣的小伙伴們可以參考一下2016-07-07
bootstrap-table實(shí)現(xiàn)服務(wù)器分頁(yè)的示例 (spring 后臺(tái))
本篇文章主要介紹了bootstrap-table實(shí)現(xiàn)服務(wù)器分頁(yè)的示例 (spring 后臺(tái)),具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09

