瘋狂

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

          js urlencode , encodeURIComponent

          Posted on 2010-06-07 14:33 瘋狂 閱讀(76760) 評論(4)  編輯  收藏 所屬分類: web
          js urlencode , encodeURIComponent

           

          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

          例如:搜藏中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

           

           

          根據說明 我需要的是encodeURIComponent函數

          --------------------------------------------------------------------------------------------------------------

          據上所述
          1、瀏覽器,表單發的URL是和頁面編碼一致的
          2、瀏覽器中用XMLHTTP發送的URL是和瀏覽器默認設置一致的
          3、請求 URL 與服務器一致則無亂碼出現

           

          PS:  推薦使用 encodeURIComponent(), 用它編碼過的 URL 與 PHP urlencode() 函數執行結果一致,交互最為便捷.


          評論

          # re: js urlencode , encodeURIComponent  回復  更多評論   

          2012-09-17 17:37 by 滑雪論壇
          滑雪論壇

          # re: js urlencode , encodeURIComponent  回復  更多評論   

          2014-12-15 19:32 by 啊艾爾恩愛

          # re: js urlencode , encodeURIComponent  回復  更多評論   

          2015-05-30 15:57 by jiangzx
          js合成url時,如果參數是中文,傳到struts2中會亂碼,解決辦法如下:
          1.js文件中使用encodeURI()方法(必須套兩層)。
          login_name = encodeURI(encodeURI(login_name));
          2.action中URLDecoder解碼
          loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
          http://jun1986.iteye.com/blog/1056732

          # re: js urlencode , encodeURIComponent  回復  更多評論   

          2016-04-09 13:55 by 許昌
          政治問題
          主站蜘蛛池模板: 浦城县| 庆阳市| 景东| 永城市| 新竹市| 宁德市| 昭觉县| 周宁县| 博白县| 丹棱县| 工布江达县| 岗巴县| 武定县| 子洲县| 雅江县| 武功县| 从化市| 永福县| 射阳县| 景谷| 辰溪县| 磐石市| 山阳县| 鄂州市| 霸州市| 双流县| 河曲县| 延安市| 溧水县| 桑植县| 青河县| 鞍山市| 金堂县| 镇雄县| 丰原市| 苗栗市| 荃湾区| 呼图壁县| 西城区| 乌拉特中旗| 望城县|