瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          js escape,encodeURI,encodeURIComponent

          Posted on 2010-06-01 17:40 瘋狂 閱讀(530) 評論(0)  編輯  收藏 所屬分類: web

          js對文字進行編碼涉及3個函數:escape,encodeURI,encodeURIComponent,相應3個解碼函數:unescape,decodeURI,decodeURIComponent

          1、   傳遞參數時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字符截斷。                            

          例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>

          2、   進行url跳轉時可以整體使用encodeURI

          例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

          3、   js使用數據時可以使用escape

          [Huoho.Com編輯]

          例如:搜藏中history紀錄。

          4、   escape對0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escape,encodeURI,encodeURIComponent編碼結果相同。


          最多使用的應為encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,所以如果給后臺傳遞參數需要使用encodeURIComponent時需要后臺解碼對utf-8支持(form中的編碼方式和當前頁面編碼方式相同)

          escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z

          encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

          encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

          主站蜘蛛池模板: 肇东市| 彭州市| 比如县| 汝阳县| 鲁山县| 隆安县| 永泰县| 苍梧县| 深泽县| 内乡县| 云南省| 泾源县| 遵化市| 中西区| 方正县| 特克斯县| 伊金霍洛旗| 台江县| 德江县| 东山县| 沂源县| 隆尧县| 花莲县| 象州县| 安吉县| 本溪| 云安县| 和林格尔县| 廊坊市| 渝北区| 卢湾区| 太白县| 二连浩特市| 芷江| 原平市| 濮阳县| 越西县| 久治县| 新巴尔虎左旗| 嘉鱼县| 凭祥市|