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

          導航

          常用鏈接

          留言簿(6)

          隨筆分類(10)

          隨筆檔案(10)

          相冊

          天氣預報

          常去論壇

          搜索

          •  

          積分與排名

          • 積分 - 38686
          • 排名 - 1192

          最新評論

          閱讀排行榜

          評論排行榜

           

          ?

          /**
          ?*?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 黑蝙蝠 閱讀(14380) 評論(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
            呵呵。。還不錯。基本上把JSP中該轉的地方都能轉了。就是有點麻煩。。  回復  更多評論   

          • # 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: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 武功县| 无为县| 同德县| 麟游县| 内丘县| 正蓝旗| 兴国县| 乌拉特前旗| 平乐县| 辉南县| 读书| 临清市| 长宁区| 星座| 鹤峰县| 墨玉县| 福州市| 蒙阴县| 万安县| 来宾市| 枣庄市| 轮台县| 礼泉县| 天祝| 玛多县| 霍城县| 满城县| 双城市| 清流县| 沾化县| 东明县| 海林市| 广东省| 南召县| 西平县| 米泉市| 武宁县| 门头沟区| 长垣县| 西贡区| 古田县|