天行健,君子以自強不息

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            12 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks
          /**
           * 21:24 2006-10-12
           * @author blackbat 
           * @title jsp中文亂碼終極解決方法
           */

          let's go。
          一 找出問題的根源
             亂碼可能出現的地方:1 jsp頁面中 
                                 2 jsp頁面之間相互傳參的參數
                                 3 與數據庫中數據的存取
             基本歸納為以上幾種。

          二 尋找解決方案
             1 出現在jsp頁面中,是由于沒有設置jsp頁面的中文字符編碼。
             2 出現在jsp頁面之間相互傳參,是由于參數沒有設置正確的字符編碼。
             3 以上2個問題解決了,那么存到數據庫中,自然就不存在亂碼。除非你對存入到數據庫里的數據再次進行編碼。

          三解決方法:
          1的解決方法 
          <% @ page contentType = " text/html;charset=gb2312 "   %>
          加上這句解決jsp頁面中的中文亂碼顯示,tomcat編譯完后向客戶端輸出的html文件不是采

          用中文編碼,所以會導致亂碼產生。

          2的解決方法
          2.1 
          <% request.setCharacterEncoding( " gb2312 " ); %>
          加上這句解決jsp頁面中的中文參數傳遞亂碼。
          因為瀏覽器默認使用的編碼是“UTF-8”發送請求參數。
          我們把它改為"gb2312"就ok了。

          2.2 String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");
          這句的意思是,把傳來的參數全部編碼轉換成gb2312,這樣做的缺點是每次傳來一個參數

          都要這樣寫,很麻煩。

          同樣可通過設置server.xml配置文件來實現。
          < Connector
          port ="8080"                maxHttpHeaderSize ="8192"
                         maxThreads
          ="150"  minSpareThreads ="25"  maxSpareThreads ="75"
                         enableLookups
          ="false"  redirectPort ="8443"  acceptCount ="100"
                         connectionTimeout
          ="20000"  disableUploadTimeout ="true"   URIEncoding ="gb2312" />
          但是這樣就應用到整個webapp中去了。

          另:
          <% @page pageEncoding = " gb2312 " %>
          此句是為了讓jsp編譯器能正確地解碼含有中文字符的jsp頁面。

          其它方法還可以修改web.xml文件,配置一個過濾器。其原理都一樣,只是換種方式而已。
          有的書上專門寫了一個函數來解決亂碼,實際上對比一下就知道那種解決方法的好與壞。
          回過頭來一看,解決亂碼也不過如此。
          ok,實際就加上這3句搞定問題。
          <% @page pageEncoding = " gb2312 " %>
          <% @ page contentType = " text/html;charset=gb2312 "   %>
          <% request.setCharacterEncoding( " gb2312 " ); %>
          請大家有什么想法,以及有什么不對的地方請各位說明,寫在留言上,大家一起討論。

          轉載自:http://www.aygfsteel.com/blackbat/archive/2008/04/27/74865.html
          posted on 2009-08-10 22:18 yill 閱讀(184) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 吉木萨尔县| 吉安市| 罗田县| 蛟河市| 怀化市| 崇明县| 嘉义县| 商水县| 玉门市| 本溪市| 郧西县| 绵竹市| 牟定县| 和田县| 阿合奇县| 鹿泉市| 隆林| 壤塘县| 白玉县| 马山县| 余姚市| 阜平县| 潞西市| 克山县| 望都县| 嘉黎县| 绥滨县| 江孜县| 临沂市| 土默特左旗| 长阳| 太湖县| 新宁县| 承德县| 青田县| 桂平市| 大姚县| 南郑县| 平利县| 神木县| 永靖县|