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

          真正的快樂來源于創造

            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 何楊 閱讀(2068) 評論(1)  編輯  收藏

          Feedback

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


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


          網站導航:
           
          主站蜘蛛池模板: 礼泉县| 客服| 龙山县| 潜山县| 鄱阳县| 平遥县| 连江县| 惠州市| 石屏县| 门头沟区| 含山县| 抚松县| 广水市| 驻马店市| 定结县| 尼玛县| 宕昌县| 洱源县| 郴州市| 克什克腾旗| 平顶山市| 广宁县| 皮山县| 浪卡子县| 那坡县| 鹤岗市| 墨竹工卡县| 长寿区| 普陀区| 洱源县| 开鲁县| 安溪县| 大荔县| 育儿| 高青县| 安阳市| 古蔺县| 崇州市| 岳池县| 中山市| 渑池县|