當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          在Ajax程序中,在URL拼接時帶有中文參數是不可避免的事情,如
          var url='/YourAppName/CreateTodo.do?name='+name;
          其中name是來自inputbox的取值,它可能帶有中文。

          如果讓Ajax直接提交這樣的URL,那么后臺用request.getParameter("name");這樣的方法得到的name就會含有亂碼。

          解決之道是先對URL進行兩次編碼,用的是JavaScript的encodeURI函數,具體代碼如下:
          var url=encodeURI('/YourAppName/CreateTodo.do?name='+name);
          url
          =encodeURI(url);

          在后臺的Servlet或是Action中,可以這樣得到正確的文字:
          Sting name=java.net.URLDecoder.decode(request.getParameter("name"),"utf-8");

          就是這樣,值得注意的是,中文環境的機器用容器跑WebApp也許不需要這樣的處理,但其它環境如日文,英文就非此不可了,因此在編碼時盡可能這樣處理一下,如果安裝后出現問題就會造成慌亂了。我們在編寫Web程序時,最好讓文件編碼,數據庫編碼,輸出編碼,網頁編碼保持一致,這樣能省去很多麻煩。

          以上操作的具體原理請見:
          http://yiminghe.javaeye.com/blog/243812
          http://yiminghe.javaeye.com/blog/247837

          posted on 2011-01-26 14:46 何楊 閱讀(2066) 評論(1)  編輯  收藏

          Feedback

          # re: 在Ajax程序中,將帶有中文的URL轉碼及后臺解析出正確的文字的解決方法 2012-02-19 11:27 撒旦飛灑方程式
          撒旦飛灑方程式  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 丰宁| 樟树市| 肇东市| 蒙自县| 疏勒县| 阿鲁科尔沁旗| 巴楚县| 丰城市| 南澳县| 临高县| 安泽县| 高邮市| 肥东县| 天台县| 锡林郭勒盟| 广饶县| 调兵山市| 青铜峡市| 桐乡市| 高雄市| 万源市| 凤城市| 洛南县| 安康市| 光泽县| 宁晋县| 洛阳市| 敖汉旗| 洪湖市| 新竹市| 黑河市| 文昌市| 新竹县| 临海市| 荥经县| 张掖市| 海盐县| 涟水县| 浙江省| 莲花县| 大丰市|