`
lz999
  • 浏览: 27035 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

J2EE 中文乱码攻略

    博客分类:
  • web
阅读更多

一.GBK与UTF8的比较

GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。

至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。

GBK包含全部中文字符;
UTF-8则包含全世界所有国家需要用到的字符。

GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。 所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛
GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大~

对于DZ论坛来说,很多插件都只支持GBK的,如果需要装较多插件的论坛还是用GBK比较好,而对装较少插件且有特殊用户群的论坛用UTF8比较好。

二.为什么选择UTF8,原因有2个:

1.因为要国际化嘛,选择UTF8可以很好地兼容其他国家语言,对台湾的繁体字也能很好地支持,GBK就比较难

2.数据库的可移植性,大部分数据库对UTF8都有很好地支持

三.需要统一字符集的地方

1.首先开发工具,如MyEclipse,JB,Eclipse等,都可设置编辑的字符集

2.众所周知的页面字符集设置

 在JSP头部声明:
<%@ page contentType="text/html;charset= UTF-8" %>
  在Jsp的html代码中,声明UTF-8:
<META http-equiv="Content-Type" CONTENT="text/html; charset=utf-8">


3.过滤器

Java代码 复制代码
  1. public class TianYaActionServlet extends ActionServlet {   
  2.  private static final long serialVersionUID = 1L;   
  3.   
  4.  protected void process(HttpServletRequest request,   
  5.    HttpServletResponse response) throws java.io.IOException,   
  6.    javax.servlet.ServletException {   
  7. //   TODO Override this org.apache.struts.action.ActionServlet method    
  8.   request.setCharacterEncoding("UTF-8");//�ж������   
  9.   super.process(request, response);   
  10.  }   
  11. }  
public class TianYaActionServlet extends ActionServlet {
 private static final long serialVersionUID = 1L;

 protected void process(HttpServletRequest request,
   HttpServletResponse response) throws java.io.IOException,
   javax.servlet.ServletException {
//   TODO Override this org.apache.struts.action.ActionServlet method 
  request.setCharacterEncoding("UTF-8");//������
  super.process(request, response);
 }
}



wml配置

Java代码 复制代码
  1. <servlet-class>   
  2.    com.TianYa.common.util.TianYaActionServlet   
  3.  </servlet-class>  
<servlet-class>
   com.TianYa.common.util.TianYaActionServlet
 </servlet-class>



这样就不用总写request.setCharacterEncoding("UTF-8");

4.如果个别需要转为其它字符集的用new String(yourString.getBytes("ISO-8859-1"),"UTF-8");

5.容器设置,如Tomcat

这里要注意form表单的method,Post与get字符集编码可能不同,Tomcat5.0以下的是相同的,以上的是不同的

Post可以通过过滤器设置

get一般是URL传参:

Tomcat 5.0.28 - 发布目录 webapps

修改conf/server.xml文件中的

<Connector port="8080" .... />

增加对GET方法获取数据时的编码设置参数 URIEncoding='GBK'

<Connector port="8080" .... URIEncoding='GBK'/>



JBOSS 4.0.2 - 发布目录 server/default/deploy (后缀.war)

修改server/default/deploy/jbossweb-tomcat55.sar/server.xml文件中的

<Connector port="8080" .... />

增加对GET方法获取数据时的编码设置参数 URIEncoding='GBK'

<Connector port="8080" .... URIEncoding='GBK'/>



7.数据库字符集设置

不同数据库字符集设置不同,我这就不一一介绍了

mySQL可以连接数据库的URL设定jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

分享到:
评论

相关推荐

    J2EE中文乱码完全攻略

    总的来说,解决J2EE中文乱码问题的关键在于确保整个系统从开发环境到运行环境,从输入到输出的每个环节都保持一致的字符编码,特别是要关注服务器配置、页面编码声明、请求处理以及数据转换等步骤。只有这样,才能...

    J2ee应用中文乱码问题解决方案.doc

    Java EE (J2EE) 应用程序在处理中文字符时常常遇到乱码问题,这主要是由于编码不一致导致的。以下是对这个问题的详细解析和解决方案: 1. **字符集概念**: - **ASCII**:7位字符集,包含128个字符,主要为英文...

    j2ee中文乱码问题终极解决之道

    在Java/J2EE开发中,中文乱码问题是一个常见的困扰,尤其在数据传输、页面展示以及数据库交互过程中。本文将详细解析这个问题,并提供多种解决策略。 首先,我们要理解乱码产生的原因。Java语言内部使用UTF-8编码...

    j2ee项目中中文乱码问题集锦

    ### j2ee项目中中文乱码问题集锦 在J2EE项目开发过程中,中文乱码问题是常见的技术难题之一。本文将围绕一个典型的案例来详细分析如何解决J2EE项目中的中文乱码问题,并总结出一系列实用的方法。 #### 一、问题...

    解决J2EE开发中乱码问题

    J2EE开发中遇到的乱码问题是一个常见的困扰,尤其是在处理中文字符时。本文将详细介绍如何解决这些问题,以一个基于Eclipse 3.3 + MyEclipse 6.0 + Tomcat 5.5的项目为例,该项目采用了Ext、Struts和Hibernate框架。...

    J2EE平台下的乱码问题分析及解决

    此外,解决汉字乱码问题还需要注意如下几点心得: - 对于不同版本的Java,它们的默认编码可能不同,需要根据实际的Java版本进行相应的编码设置。 - 在进行国际化软件开发时,应该避免在系统中使用默认编码,而应该...

    J2EE中文问题终极解决之道

    ### J2EE中文乱码问题终极解决之道 在开发基于J2EE的应用系统时,中文乱码问题是开发者经常遇到的一个难题。本篇文章旨在提供一种全面、深入的解决方案,帮助开发者彻底解决这一问题。 #### 一、理解编码机制 在...

    J2EE中文版

    **J2EE中文版** Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是一个由 Sun Microsystems(现已被 Oracle 收购)开发的开放标准,用于构建分布式、多层的企业级应用程序。J2EE 提供了一个集成的...

    J2EE api 中文版

    在使用J2EE API中文版时,如果遇到乱码问题,可能是因为文件的字符编码不匹配。解决这个问题通常需要将文件或项目设置为UTF-8编码。对于文档,使用支持更改编码的编辑器(如Notepad++或IntelliJ IDEA),将其编码...

    J2EE中Struts中四种解决中文乱码问题的方法

    ### J2EE中Struts框架下解决中文乱码问题的四种方法 在Java Web开发过程中,尤其是使用Struts框架时,经常会遇到中文乱码的问题。本文将详细介绍在J2EE环境下,利用Struts框架解决中文乱码问题的四种实用方法。 ##...

    中文岂能乱码(J2EE)

    特别是在J2EE(Java 2 Enterprise Edition)环境中,由于请求编码处理不当,很容易导致用户界面上的中文显示为无法识别的字符或乱码。这种现象严重影响用户体验,降低系统可用性。因此,了解如何有效解决中文乱码...

    java中文乱码问题处理方案.docx

    "java中文乱码问题处理方案" java 中文乱码问题处理方案是 java 开发者经常遇到的问题之一。这个问题的存在是由于 java 系统的中文问题原理没有被正确地理解和解决。只有当我们了解了 java 系统的中文问题原理,...

    JSP乱码解决方案J2EE

    《JSP乱码解决方案J2EE》 在Java和JSP开发中,中文乱码问题是一直困扰开发者的老大难问题。这个问题的根源在于Java的内核和class文件基于Unicode编码,而许多其他数据存储媒介如数据库、文件、流则通常使用其他编码...

    jsp中文乱码总结包括 ajax中文乱码

    针对java web开发方面中文乱码情况的总结,基本各种情况都有了!

    java 中文乱码 处理

    以上介绍了几种常见的Java中文乱码处理方法,包括请求参数编码转换、字符串转义与反转义、前端JavaScript处理以及配置J2EE应用程序。每种方法都有其适用场景,开发者可以根据实际情况选择合适的方法来解决乱码问题。...

    java+jsp+mysql开发 web项目处理中文乱码问题

    由于 Tomcat 的 J2EE 实现对表单提交,即以 post 方式提交的参数采用默认的 ISO-8859-1 来处理,中文就会出现乱码。解决方法是,使用过滤器设置编码。我们可以编写一个过滤器,例如 SetCharacterEncodingFilter.java...

    j2ee13:jsp02,request对象,中文乱码处理,url传参

    总之,`request`对象在J2EE开发中扮演着核心角色,处理中文乱码和URL传参是日常工作中常遇到的问题。了解和掌握这些知识点,将使你在Web开发中更加得心应手。通过不断的实践和学习,你将能够更好地应对各种复杂情况...

    J2EE以GET和POST方式提交表单的乱码解决(受教了)

    然而,在处理中文字符时,可能会遇到乱码问题。这个问题通常涉及到字符编码的设置和处理,尤其是对于从表单提交的数据。下面我们将深入探讨如何解决J2EE环境下GET和POST方式提交表单时出现的乱码问题。 首先,我们...

Global site tag (gtag.js) - Google Analytics