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

          真正的快樂來源于創造

            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 撒旦飛灑方程式
          撒旦飛灑方程式  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 娱乐| 遵化市| 育儿| 高青县| 云梦县| 青浦区| 博白县| 苏尼特左旗| 根河市| 大邑县| 宁陕县| 南开区| 定兴县| 巴东县| 腾冲县| 夹江县| 伊宁市| 贺州市| 安化县| 宁武县| 通道| 绵竹市| 德惠市| 财经| 东兴市| 丹东市| 来凤县| 包头市| 涪陵区| 页游| 衡阳县| 噶尔县| 龙江县| 泰安市| 砚山县| 长宁县| 子长县| 隆德县| 永靖县| 石景山区| 杭锦旗|