js 處理URL實(shí)用技巧
更新時(shí)間:2010年11月23日 21:19:11 作者:
escape()、encodeURI()、encodeURIComponent()三種方法都能對一些影響URL完整性的特殊字符進(jìn)行過濾。
但后兩者是將字符串轉(zhuǎn)換為UTF-8的方式來傳輸,解決了頁面編碼不一至導(dǎo)致的亂碼問題。
例如:發(fā)送頁與接受頁的編碼格式(Charset)不一致(假設(shè)發(fā)送頁面是GB2312而接收頁面編碼是UTF-8),使用escape()轉(zhuǎn)換傳輸中文字串就會出現(xiàn)亂碼問題。
以下是JS下對URL進(jìn)行編/解碼的各種方法:
escape方法:就對@*+/ A-Z 0-9 a-z這些字符不編碼,其它非ASCII字符都會編碼以%XX編碼替換,解碼使用unescape,escape 方法不能用來對“統(tǒng)一資源標(biāo)識符”(URI) 進(jìn)行編碼。對其編碼應(yīng)使用 encodeURI 和encodeURIComponent 方法。encodeURI():對! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都會被編碼,解碼使用decodeURI();
如果想使更多的字會被編碼,例:/..,請使用encodeURIComponent()方法,被此方法編碼后,參數(shù)傳遞給服務(wù)器就是一種無效的字符,解碼使用decodeURIComponent()
例如:發(fā)送頁與接受頁的編碼格式(Charset)不一致(假設(shè)發(fā)送頁面是GB2312而接收頁面編碼是UTF-8),使用escape()轉(zhuǎn)換傳輸中文字串就會出現(xiàn)亂碼問題。
以下是JS下對URL進(jìn)行編/解碼的各種方法:
escape方法:就對@*+/ A-Z 0-9 a-z這些字符不編碼,其它非ASCII字符都會編碼以%XX編碼替換,解碼使用unescape,escape 方法不能用來對“統(tǒng)一資源標(biāo)識符”(URI) 進(jìn)行編碼。對其編碼應(yīng)使用 encodeURI 和encodeURIComponent 方法。encodeURI():對! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z,其它的字符都會被編碼,解碼使用decodeURI();
如果想使更多的字會被編碼,例:/..,請使用encodeURIComponent()方法,被此方法編碼后,參數(shù)傳遞給服務(wù)器就是一種無效的字符,解碼使用decodeURIComponent()
相關(guān)文章
JS+JSP checkBox 全選具體實(shí)現(xiàn)
本文為大家介紹下使用JS+JSP實(shí)現(xiàn)checkBox全選,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2014-01-01Laravel中常見的錯(cuò)誤與解決方法小結(jié)
大家在用Laravel框架期間可能會遇到了不少問題,現(xiàn)在我將自己遇到的一些問題總結(jié)出來,有一些調(diào)試起來著實(shí)不太容易,本文篩選出幾個(gè),希望這篇文章能讓大家在PHP開發(fā)中少走一些彎路。2016-08-08js獲取時(shí)間函數(shù)及擴(kuò)展函數(shù)的方法
下面小編就為大家?guī)硪黄猨s獲取時(shí)間函數(shù)及擴(kuò)展函數(shù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10淺談Javascript中的函數(shù)、this以及原型
下面小編就為大家?guī)硪黄獪\談Javascript中的函數(shù)、this以及原型。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10