`
tanzek
  • 浏览: 52591 次
  • 性别: 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 打印,Java pdf打印,Java打印

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

    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中文版

    Java Web技术是构建Web应用程序的核心框架,它涵盖了服务器端编程、网页动态生成、数据交互等多个方面。Java Web允许开发者创建可扩展、跨平台的网络应用,以满足不断增长的互联网需求。 Web Services是一种基于...

    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 Web编程宝典-十年典藏版.pdf.part2(共2个)

    Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《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年...

Global site tag (gtag.js) - Google Analytics