Java-黑蝙蝠  
          My name is mozart0
          外表澀苦但留醇香于舌尖
          online
          Adult Dating
          公告
          • 多一份自信,多一份成功!
            多看一本書,多一份機遇!
            多一次微笑,多一份快樂!
          日歷
          <2006年10月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234
          統計
          • 隨筆 - 10
          • 文章 - 0
          • 評論 - 32
          • 引用 - 0

          導航

          常用鏈接

          留言簿(6)

          隨筆分類(10)

          隨筆檔案(10)

          相冊

          天氣預報

          常去論壇

          搜索

          •  

          積分與排名

          • 積分 - 38626
          • 排名 - 1191

          最新評論

          閱讀排行榜

          評論排行榜

           

          ?

          /**
          ?*?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 " ); %>
          請大家有什么想法,以及有什么不對的地方請各位說明,寫在留言上,大家一起討論。
          posted on 2006-10-12 22:00 黑蝙蝠 閱讀(14376) 評論(7)  編輯  收藏 所屬分類: Jsp(基礎)
          評論:
          • # re: jsp中文亂碼終極解決方法  空空 Posted @ 2006-10-13 11:21
            以前我就按上面的寫了,沒有配置server.xml,一直都不行,可以寫個servlet每次都自動去轉  回復  更多評論   

          • # re: jsp中文亂碼終極解決方法[未登錄]  lansing Posted @ 2007-01-22 15:23
            刻意創建一個過濾器  回復  更多評論   

          • # re: jsp中文亂碼終極解決方法  Hotboy Posted @ 2007-11-25 19:42
            創建過濾器,在Servlet執行之前調用該過濾器,就可以檢查每個jsp頁面的中文亂碼拉
            在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" />
            這樣就可以解決拉!!
            還有一個中文亂碼處理,那就是struts 中的資源文件中可能會出現中文亂碼,假如你要進行國際化的話!!
            我剛出道,希望能得到大家的支持! 有什么說錯了的,請各位多多指教!!
            我的油箱:p.r.c.lipo@gmail.com  回復  更多評論   

          • # re: jsp中文亂碼終極解決方法  chensong Posted @ 2008-04-27 16:39
            將瀏覽器的編碼該位UTF-8,再將所有的GB2312改為UTF-8  回復  更多評論   

          • # re: jsp中文亂碼終極解決方法  hutch25 Posted @ 2008-05-20 16:20
            寫個過濾器不就OK了么
              回復  更多評論   

          • # re: jsp中文亂碼終極解決方法  Lepoke Posted @ 2008-11-23 18:55
            呵呵。。還不錯?;旧习袹SP中該轉的地方都能轉了。就是有點麻煩。。  回復  更多評論   

          • # re: jsp中文亂碼終極解決方法  coderlu Posted @ 2012-12-09 22:38
            樓主還看這個帳號的么?
            我想說,處理問題1的時候,設置pageEncoding就行了,contentType的作用比它要大些(詳情:http://blog.csdn.net/lutinghuan/article/details/8275958)。代碼如下:
            <%@ page pageEncoding="UTF-8"%>
              回復  更多評論   


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


          網站導航:
           
           
          Copyright © 黑蝙蝠 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 义乌市| 张家界市| 台东市| 定日县| 长泰县| 武冈市| 嘉禾县| 甘南县| 万安县| 田东县| 罗山县| 渝中区| 宾川县| 宣汉县| 常熟市| 博客| 徐闻县| 富阳市| 囊谦县| 隆昌县| 漯河市| 波密县| 赣州市| 新宾| 日照市| 册亨县| 黑龙江省| 武安市| 洪江市| 仲巴县| 宕昌县| 台北市| 迁西县| 新巴尔虎右旗| 白银市| 黄骅市| 宁强县| 蒲城县| 象州县| 通城县| 潞城市|