Java-黑蝙蝠  
          My name is mozart0
          外表澀苦但留醇香于舌尖
          online
          Adult Dating
          公告
          • 多一份自信,多一份成功!
            多看一本書(shū),多一份機(jī)遇!
            多一次微笑,多一份快樂(lè)!
          日歷
          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統(tǒng)計(jì)
          • 隨筆 - 10
          • 文章 - 0
          • 評(píng)論 - 32
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)(10)

          隨筆檔案(10)

          相冊(cè)

          天氣預(yù)報(bào)

          常去論壇

          搜索

          •  

          積分與排名

          • 積分 - 38640
          • 排名 - 1192

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           

          ?

          /**
          ?*?21:24?2006-10-12
          ?*?@author?blackbat?
          ?*?@title?jsp中文亂碼終極解決方法
          ?*/

          let's?go。
          一?找出問(wèn)題的根源
          ???亂碼可能出現(xiàn)的地方:1?jsp頁(yè)面中?
          ???????????????????????2?jsp頁(yè)面之間相互傳參的參數(shù)
          ???????????????????????3?與數(shù)據(jù)庫(kù)中數(shù)據(jù)的存取
          ???基本歸納為以上幾種。

          二?尋找解決方案
          ???1?出現(xiàn)在jsp頁(yè)面中,是由于沒(méi)有設(shè)置jsp頁(yè)面的中文字符編碼。
          ???2?出現(xiàn)在jsp頁(yè)面之間相互傳參,是由于參數(shù)沒(méi)有設(shè)置正確的字符編碼。
          ???3?以上2個(gè)問(wèn)題解決了,那么存到數(shù)據(jù)庫(kù)中,自然就不存在亂碼。除非你對(duì)存入到數(shù)據(jù)庫(kù)里的數(shù)據(jù)再次進(jìn)行編碼。

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

          用中文編碼,所以會(huì)導(dǎo)致亂碼產(chǎn)生。

          2的解決方法
          2.1?
          <% request.setCharacterEncoding( " gb2312 " ); %>
          加上這句解決jsp頁(yè)面中的中文參數(shù)傳遞亂碼。
          因?yàn)闉g覽器默認(rèn)使用的編碼是“UTF-8”發(fā)送請(qǐng)求參數(shù)。
          我們把它改為"gb2312"就ok了。

          2.2?String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");
          這句的意思是,把傳來(lái)的參數(shù)全部編碼轉(zhuǎn)換成gb2312,這樣做的缺點(diǎn)是每次傳來(lái)一個(gè)參數(shù)

          都要這樣寫(xiě),很麻煩。

          同樣可通過(guò)設(shè)置server.xml配置文件來(lái)實(shí)現(xiàn)。
          < Connector
          port ="8080" ???????????????maxHttpHeaderSize ="8192"
          ???????????????maxThreads
          ="150" ?minSpareThreads ="25" ?maxSpareThreads ="75"
          ???????????????enableLookups
          ="false" ?redirectPort ="8443" ?acceptCount ="100"
          ???????????????connectionTimeout
          ="20000" ?disableUploadTimeout ="true" ? URIEncoding ="gb2312" />
          但是這樣就應(yīng)用到整個(gè)webapp中去了。

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

          其它方法還可以修改web.xml文件,配置一個(gè)過(guò)濾器。其原理都一樣,只是換種方式而已。
          有的書(shū)上專(zhuān)門(mén)寫(xiě)了一個(gè)函數(shù)來(lái)解決亂碼,實(shí)際上對(duì)比一下就知道那種解決方法的好與壞。
          回過(guò)頭來(lái)一看,解決亂碼也不過(guò)如此。
          ok,實(shí)際就加上這3句搞定問(wèn)題。
          <% @page?pageEncoding = " gb2312 " %>
          <% @?page?contentType = " text/html;charset=gb2312 " ? %>
          <% request.setCharacterEncoding( " gb2312 " ); %>
          請(qǐng)大家有什么想法,以及有什么不對(duì)的地方請(qǐng)各位說(shuō)明,寫(xiě)在留言上,大家一起討論。
          posted on 2006-10-12 22:00 黑蝙蝠 閱讀(14377) 評(píng)論(7)  編輯  收藏 所屬分類(lèi): Jsp(基礎(chǔ))
          評(píng)論:
          • # re: jsp中文亂碼終極解決方法  空空 Posted @ 2006-10-13 11:21
            以前我就按上面的寫(xiě)了,沒(méi)有配置server.xml,一直都不行,可以寫(xiě)個(gè)servlet每次都自動(dòng)去轉(zhuǎn)  回復(fù)  更多評(píng)論   

          • # re: jsp中文亂碼終極解決方法[未登錄](méi)  lansing Posted @ 2007-01-22 15:23
            刻意創(chuàng)建一個(gè)過(guò)濾器  回復(fù)  更多評(píng)論   

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

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

          • # re: jsp中文亂碼終極解決方法  hutch25 Posted @ 2008-05-20 16:20
            寫(xiě)個(gè)過(guò)濾器不就OK了么
              回復(fù)  更多評(píng)論   

          • # re: jsp中文亂碼終極解決方法  Lepoke Posted @ 2008-11-23 18:55
            呵呵。。還不錯(cuò)。基本上把JSP中該轉(zhuǎn)的地方都能轉(zhuǎn)了。就是有點(diǎn)麻煩。。  回復(fù)  更多評(píng)論   

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © 黑蝙蝠 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 宿州市| 墨玉县| 滨海县| 江津市| 图片| 潮安县| 通山县| 富民县| 太保市| 阳高县| 迁安市| 兴安盟| 关岭| 开阳县| 涟源市| 丹江口市| 崇仁县| 永兴县| 海林市| 榆中县| 即墨市| 南和县| 宁陵县| 香河县| 扶绥县| 塘沽区| 玛纳斯县| 明光市| 天等县| 阿荣旗| 泰来县| 大悟县| 庆阳市| 富锦市| 邹平县| 大新县| 湘乡市| 姜堰市| 马鞍山市| 开鲁县| 西乌|