瘋狂

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

          js urlencode , encodeURIComponent

          Posted on 2010-06-07 14:33 瘋狂 閱讀(76761) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): web
          js urlencode , encodeURIComponent

           

          js 對(duì)文字進(jìn)行編碼涉及3個(gè)函數(shù):escape,encodeURI,encodeURIComponent,相應(yīng)3個(gè)解碼函數(shù):unescape,decodeURI,decodeURIComponent

          1、   傳遞參數(shù)時(shí)需要使用encodeURIComponent,這樣組合的url才不會(huì)被#等特殊字符截?cái)唷?nbsp;                           

          例如:<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、   進(jìn)行url跳轉(zhuǎn)時(shí)可以整體使用encodeURI

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

          3、   js使用數(shù)據(jù)時(shí)可以使用escape

          例如:搜藏中history紀(jì)錄。

          4、   escape對(duì)0-255以外的unicode值進(jìn)行編碼時(shí)輸出%u****格式,其它情況下escape,encodeURI,encodeURIComponent編碼結(jié)果相同。


          最多使用的應(yīng)為encodeURIComponent,它是將中文、韓文等特殊字符轉(zhuǎn)換成utf-8格式的url編碼,所以如果給后臺(tái)傳遞參數(shù)需要使用encodeURIComponent時(shí)需要后臺(tái)解碼對(duì)utf-8支持(form中的編碼方式和當(dāng)前頁(yè)面編碼方式相同)

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

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

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

           

           

          根據(jù)說(shuō)明 我需要的是encodeURIComponent函數(shù)

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

          據(jù)上所述
          1、瀏覽器,表單發(fā)的URL是和頁(yè)面編碼一致的
          2、瀏覽器中用XMLHTTP發(fā)送的URL是和瀏覽器默認(rèn)設(shè)置一致的
          3、請(qǐng)求 URL 與服務(wù)器一致則無(wú)亂碼出現(xiàn)

           

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


          評(píng)論

          # re: js urlencode , encodeURIComponent  回復(fù)  更多評(píng)論   

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

          # re: js urlencode , encodeURIComponent  回復(fù)  更多評(píng)論   

          2014-12-15 19:32 by 啊艾爾恩愛(ài)

          # re: js urlencode , encodeURIComponent  回復(fù)  更多評(píng)論   

          2015-05-30 15:57 by jiangzx
          js合成url時(shí),如果參數(shù)是中文,傳到struts2中會(huì)亂碼,解決辦法如下:
          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  回復(fù)  更多評(píng)論   

          2016-04-09 13:55 by 許昌
          政治問(wèn)題
          主站蜘蛛池模板: 天长市| 仲巴县| 南通市| 福贡县| 慈溪市| 海安县| 香河县| 雷州市| 桃园县| 上饶县| 宁蒗| 平山县| 宿迁市| 蓬莱市| 聊城市| 安陆市| 丹阳市| 阜南县| 乌海市| 曲阳县| 云林县| 巴中市| 蓬安县| 驻马店市| 惠安县| 琼海市| 肇源县| 灯塔市| 曲麻莱县| 织金县| 临湘市| 拜泉县| 兴安县| 磴口县| 东兰县| 萨嘎县| 临城县| 高密市| 上思县| 万盛区| 盈江县|