資料整理

           

          Tomcat中文問題的處理方法

          第一部分:? jsp? ---> java/servlet

          對于流行的Tomcat來說,有以下三種解決方法:

            1) 更改 D:\Tomcat\conf\server.xml,指定瀏覽器的編碼格式為簡體中文

            方法是找到 server.xml 中的

          ??? <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          ??? enableLookups="false" redirectPort="8443" acceptCount="100"
          ??? connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

            標記,粗體字是我添加的。

            可以這樣驗證你的更改是否成功:在更改前,在你出現(xiàn)亂碼的頁面的IE瀏覽器,點擊菜單查看|編碼,會發(fā)現(xiàn)西歐(ISO)”處于選中狀態(tài)。而更改后,點擊菜單查看|編碼,會發(fā)現(xiàn)簡體中文(GB2312)”處于選中狀態(tài)。注意你的Tomcat的common下要有"endorsed"和"i18n"文件夾,其中包含編碼所需的lib

          ???
            2)更該 Java 程序,
          ?public class ThreeParams extends HttpServlet {
          ? public void doGet(HttpServletRequest request, HttpServletResponse response)
          ?? throws ServletException, IOException {
          ????? response.setContentType("text/html; charset=GBK");
          ????? ...
          ? }?
          }

            粗體字是必需要有的,它的作用是讓瀏覽器把Unicode字符轉換為GBK字符。這樣頁面的內容和瀏覽器的顯示模式都設成了GBK,就不會亂碼了。

          ??




          第二部分??? java/servlet?? ---->?? mysql
          mysql和Hibernate中的中文問題解決方法
          另一種解決方法(mysql-4.1.11).低版本的mysql似乎沒出現(xiàn)過中文問題(mysql-4.0.17). :)

          1.添加一個過濾器,將字符集編碼設為GBK.
          修改web.xml:

          ?<filter>
          ??<filter-name>SetCharacterEncoding</filter-name>
          ??<filter-class>hxz.filter.SetEncodingFilter</filter-class>
          ??<init-param>
          ???<param-name>encoding</param-name>
          ???<param-value>GBK</param-value>
          ??</init-param>
          ?</filter>
          ?
          ?<filter-mapping>
          ??<filter-name>SetCharacterEncoding</filter-name>
          ??<url-pattern>/*</url-pattern>
          ?</filter-mapping>

          新建一個過濾器:
          package hxz.filter;

          import java.io.IOException;

          import javax.servlet.*;

          public class SetEncodingFilter implements Filter {
          ?
          ?// default character encoding
          ?String defaultEncoding = "GBK";?
          ?
          ?public void init(FilterConfig config) throws ServletException {
          ??String encoding = config.getInitParameter("encoding");
          ??if (encoding != null) {
          ???defaultEncoding = encoding;
          ??}
          ?}

          ?public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
          ??request.setCharacterEncoding(defaultEncoding);
          ??chain.doFilter(request, response);
          ?}

          ?public void destroy() {
          ??defaultEncoding = null;
          ?}

          }

          2.修改hibernate配置文件:
          <property name="url">
          ? <value>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=GBK</value>
          </property>
          注意后面的:useUnicode=true&amp;characterEncoding=GBK, 在xml中&要改為;amp;

          3.在新版本中mysql建表時,你可以選擇一種字符集,將它設為GBK.
          jsp或servlet中把字符集改為GBK.

          ?

          posted on 2006-07-14 09:09 謝瑋 閱讀(285) 評論(0)  編輯  收藏 所屬分類: java應用程序數(shù)據(jù)持久化應用服務器Web

          導航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 镇安县| 集贤县| 九龙县| 宜阳县| 宁明县| 建阳市| 卓资县| 易门县| 潞城市| 兴化市| 高唐县| 汝城县| 平潭县| 上蔡县| 瑞金市| 石景山区| 伊宁县| 建昌县| 漠河县| 凤城市| 沙坪坝区| 稻城县| 阿拉善右旗| 饶河县| 惠水县| 建湖县| 琼结县| 鹿泉市| 扶绥县| 云林县| 天门市| 南投县| 余姚市| 罗山县| 中山市| 清丰县| 亚东县| 银川市| 镇坪县| 兴义市| 洪雅县|