`
tanzek
  • 浏览: 53702 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Java Web的中文问题

阅读更多

摘自王俊标编著的《精通Java Web开发-基于Struts EJB Hibernate JBuilder》一书:

1、页面请求
   采用Filter过滤器方式:
                  web.xml片段

 1 ……
 2 <!--  filter 配置  -->
 3 < filter >
 4      <!--  filter 别名  -->
 5          < filter-name > encodingfilter </ filter-name >
 6          <!--  类文件位置  -->
 7          < filter-class > login3.EncodingFilter </ filter-class >
 8         
 9          <!--  定义属性encoding="gb2312" 即指定编码类型  -->
10          < init-param >
11              < desription > encode to gb2312 </ desription >
12              < param-name > encoding </ param-name >
13              < param-value > gb2312 </ param-value >
14          </ init-param >
15 </ filter >
16
17 <!--  filter 映射配置  -->
18 < filter-mapping >
19      <!--  定义该filter 处理所有格式的请求  -->
20      < filter-name > encodingfilter </ filter-name >
21      < url-pattern > /* </ url-pattern >
22 </ filter-mapping >
23 ……

         EncodingFilter.java

 1 import  java.io.IOException;
 2
 3 import  javax.servlet. * ;
 4 import  javax.servlet.http.HttpServlet;
 5
 6 public   class  EncodingFilter  extends  HttpServlet 
 7      implements  Filter  {
 8     
 9      private  FilterConfig filterConfig;
10     
11      private  String targetEncoding  =   null ;
12     
13      public   void  init(FilterConfig filterConfig)  throws  ServletException  {
14          this .filterConfig  =  filterConfig;
15          this .targetEncoding  =   this .filterConfig.getInitParameter( " encoding " );
16     }

17
18      public   void  doFilter(ServletRequest request, ServletResponse response,
19             FilterChain chain)  throws  IOException, ServletException  {
20          try   {
21             System.out.println( " targetEncoding : "   +  targetEncoding  +   " \n " );
22             request.setCharacterEncoding(targetEncoding);
23             chain.doFilter(request, response);
24         }
  catch  (ServletException sx)  {
25             filterConfig.getServletContext().log(sx.getMessage());
26         }
  catch  (IOException iox)  {
27             filterConfig.getServletContext().log(iox.getMessage());
28         }

29     }

30     
31      public   void  destroy()  {
32          this .filterConfig  =   null ;
33          this .targetEncoding  =   null ;
34     }
    
35 }

36


2、Web容器编码
      在Tomcat的的源代码中的getParameter()方法,用户调用request.getParameter()方法时,首先调用parsetParameters()方法,在这里面将编码进行转换。如:
      String s_target = new String (s_source.getBytes("iso-8859-1"), "gb2312);

3、数据库
      MySQL中文问题的主要原因是:它对数据进行编码时,采用了和底层的操作系统所不同的编码。通常MySQL在中文Windows平台上正确的编码方式是GBK。因此只要将MySQL安装目录下的my.ini文件中的default-character-set选项设为GBK即可。

4、响应结果
      对于Servlet的代码处理,可以使用:
         ……
         respsonse.setContentType("text/html;charset=GB2312");
         ……
      对于JSP文件,可以在开头部分添加如下声明:
         ……
         <%@ page contentType="text/html;charset=GB2312" %>
         ……
      对于HTML页面文件,则在开头部分添加声明如下:
         ……
         <head>
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=GB2312">
         </head>
         ……
5、XML文件
      在采用"UTF-8"方式编码的情况下,使用XML文件存储中文数据常常会出现乱码的问题,建议使用"GB2312":
      <?xml version='1.0' encoding="GB2312"

分享到:
评论

相关推荐

    Java Web开发常见问题.pdf

    ### Java Web开发中常见的中文乱码问题解析 在Java Web开发过程中,中文乱码问题是开发者经常遇到的一个挑战。这些问题主要源于Java默认的Unicode编码与HTML页面及表单默认的Latin-1编码之间的不兼容,以及在不同的...

    JAVA WEB服务 构建与运行 JAVA WEB服务构建与运行

    从所提供的文件内容来看,内容片段较为混乱,其中包含了许多无关字符和重复片段,但我们可以识别出一些关键信息,并据此整理出关于“Java Web服务 构建与运行”的知识点。 ### 知识点一:Java Web服务概念 Java ...

    java web的api

    Java Web API是Java平台用于构建Web应用程序的一组接口和类,涵盖了从服务器端处理到客户端交互的各种技术。在这个描述中,我们关注的关键技术包括Hibernate、Java EE、JDK、jQuery、Spring以及W3C School的API。让...

    java 中文问题(java web 开发中的中文问题)

    Java 中文问题是 Java web 开发中常见的一种问题,解决该问题需要了解 Java 中文编码、字符集和过滤器的使用。本文将总结 Java 中文问题的解决方法,并提供实践经验和代码示例。 一、支持中文 在 Java 中,支持...

    Java,web框架问题集合

    中文乱码问题是Web开发中的常见问题,了解其产生原因并掌握解决方案,是确保国际化网站正常运行的基础。 ### Hibernate UUID生成策略 Hibernate是Java领域流行的ORM框架,了解其UUID生成策略有助于在实体对象的...

    Java web 打印,Java pdf打印,Java打印

    根据提供的文件信息,本文将详细解析与Java Web打印、Java PDF打印相关的技术点及实现方法。主要内容包括: 1. Java Web打印的基本概念。 2. 使用Struts框架进行Web页面开发的相关知识点。 3. Java PDF打印的技术...

    解决Java_Web开发中Jsp存储读取MySQL数据中文乱码的问题

    ### 解决Java_Web开发中Jsp存储读取MySQL数据中文乱码的问题 #### 背景介绍 在Java Web开发过程中,特别是涉及到与数据库交互的应用中,中文乱码问题是一个常见且令人头疼的问题。这不仅影响用户体验,还可能造成...

    Java web 国际化

    Java Web 国际化(i18n)是指在开发Web应用程序时,考虑到全球不同地区用户的语言、文化习俗和格式需求,使其能够适应多种语言和地域环境。这一过程包括软件的本地化和国际化两个方面。本地化是指针对特定国家或地区...

    java web框架开发技术

    实验内容包括七个实验项目,每个实验项目都涵盖了 Struts2 框架的不同方面,如 Struts2 的基本配置和工作原理、参数的接受和显示、中文环境的设置和相关配置文件的配置、Web 元素的访问和参数的携带、结果类型的掌握...

    java web开发解决乱码问题

    ### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...

    使用Java Web服务构建SOA 中文版 part1

    使用Java Web服务构建SOA 中文版 part1

    深入体验Java Web开发内幕

    6.7 获取请求消息的实体内容  6.8 利用请求域属性传递信息  6.9 请求参数的中文读取问题  6.10 思考与实践 第7章 会话与状态管理  7.1 Web应用中的会话与会话状态  7.2 Cookie  7.3 在...

    java web学习的所有api中文文档

    Java Web学习的所有API中文文档是一份宝贵的资源,涵盖了Java Web开发中的关键技术和API。这份文档集合了开发者在进行Java EE(Java Enterprise Edition)开发时可能会用到的各种接口、类和方法的详细解释,帮助初学...

    java web项目实战大全源码搜索引擎

    Java Web项目实战大全源码搜索引擎是一个综合性的学习资源,涵盖了Java Web开发中的重要模块,特别是搜索引擎的实现。这个项目旨在帮助开发者深入理解如何在Web应用中集成和构建搜索引擎功能,以便用户可以高效地...

    Java WEB开发中的中文乱码问题解决方法.pdf

    在Java Web开发中,中文乱码问题一直是开发人员面临的常见问题之一。中文乱码通常是由于在字符编码转换过程中,字符集不一致或设置不当所导致。为了解决这一问题,首先需要了解Java Web工程字符编码的基本理论,包括...

    java中文乱码问题详解--- java中文乱码问题详解

    ### Java中文乱码问题详解 #### 一、中文问题的来源与背景 计算机技术发展初期,操作系统主要支持单字节的ASCII字符集。随着全球化进程加快和技术进步,为支持多种语言,尤其是双字节编码的语言(如中文),提出了...

    深入体验Java Web开发内幕-核心基础(PDF中文版)part2

    深入体验Java Web开发内幕-核心基础(PDF中文版)相关资源: 深入体验Java Web开发内幕-核心基础(PDF中文版)part1(压缩包名:深入体验Java Web开发内幕-核心基础.part1); 深入体验Java Web开发内幕-核心基础(PDF...

    JAVA.WEB服务.构建与运行

    中文名: JAVA WEB服务 构建与运行 原名: Java Web Services:Up and Running 作者: Martin Kalin译者: 任增刚图书分类: 软件 资源格式: PDF 版本: 扫描版 出版社: O'Reilly书号: ISBN: 9787121097119发行时间: 2009年...

    Java/Java web参考文档

    这个压缩包可能包含了一份关于DHTML(Dynamic HTML)的中文参考手册,这对于理解如何在Java Web应用中实现动态交互性的网页至关重要。 【描述】虽然描述中没有提供具体信息,但通过给出的博文链接,我们可以推测这...

Global site tag (gtag.js) - Google Analytics