javaGrowing

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            92 隨筆 :: 33 文章 :: 49 評論 :: 0 Trackbacks

          javascript中可用的編碼解碼函數,有如下的組合:

          • escape(string);
            unescape(string);
          • encodeURI(string);
            decodeURI(string);
          • encodeURIComponent(string);
            decodeURIComponent(string);

          他們之間的區別為:

          escape/unescape:
          以16進制編碼字符串,對空格、符號等字符用%xx編碼表示,對中文等字符用%uxxxx編碼表示。自javascript1.5之后,此方法已經不被推薦使用。

          encodeURI/decodeURI:
          以UTF-8編碼編碼字符串,對這些字符:“ ; , / ? : @ & = + $ ”不做編碼。

          encodeURIComponent/decodeURIComponent:
          以UTF-8編碼編碼所有字符串。

          因為escape/unescape已經deprecated。就不說它了,encodeURI和encodeURIComponent之前的區別用實例說明:

          比如說要使用get方式將一個參數u,傳遞給服務器:

          var ?u="index.php?blogId=1&op=Default";
          var ?getURL="http://www.simplelife.cn/test.php?p="+encodeURI(u);

          這里,如果使用了encodeURI,那么最終的getURL的值為:
          http://www.simplelife.cn/test.php?p=index.php?blogId=1&op=Default

          這樣,對參數u中的字符"&op=Default",將不會作為字符串參數傳遞到服務器端,而是當作test.php的參數傳遞過去了,因為對"&op=Default"中的字符"&"沒有做編碼。
          所以,在這種應用場景下,就需要使用encodeURIComponent,編碼后的getURL值為:
          http://www.simplelife.cn/test.php?p=index.php%3FblogId%3D1%26op%3DDefault

          這樣,參數就可以順利傳遞過去了。在服務器端得到的字符串將是正確的u。

          反之,如果需要通過get方式訪問某一URL,但是URL中包含中文等字符,為了防止亂碼等編碼問題,需要將URL通過encodeURI進行編碼。
          posted on 2006-11-03 15:49 javaGrowing 閱讀(16178) 評論(3)  編輯  收藏 所屬分類: javascript

          評論

          # re: javascript中的編碼與解碼 2012-11-19 18:22 撒點粉佛擋殺佛
          撒點粉撒點粉撒  回復  更多評論
            

          # re: javascript中的編碼與解碼 2013-05-12 15:57 14
          1111  回復  更多評論
            

          # re: javascript中的編碼與解碼 2013-07-10 16:39 pump
          escape/unescape原來這樣用  回復  更多評論
            

          主站蜘蛛池模板: 留坝县| 双江| 永济市| 綦江县| 醴陵市| 武鸣县| 罗山县| 关岭| 五常市| 泰宁县| 烟台市| 日喀则市| 曲麻莱县| 阿巴嘎旗| 东丰县| 新沂市| 乌兰浩特市| 万盛区| 九龙县| 新营市| 荣昌县| 山东省| 百色市| 宿松县| 微博| 定陶县| 多伦县| 东安县| 乌拉特前旗| 元谋县| 巴彦淖尔市| 苍梧县| 锡林浩特市| 香格里拉县| 南漳县| 定日县| 旬阳县| 盈江县| 略阳县| 聂荣县| 榕江县|