Java EE 系统中文问题解决方法

开发 后端
本文讲到了五种Java ee系统中文问题的解决办法,分别为:下载中文文件名文件问题、表单get/post传递中文乱码、jsp页面模版、数据库以Unicode编码存储数据、JDBC连接参数,这五个方面的问题。

第一原则:所有编码的地方,统一设为UTF-8,这样繁体,简体,日文,韩文……通吃了

一、下载中文文件名文件问题:

a)Tomcat:修改Tomcat安装目录下conf/server.xml文件,加上URIEncoding="UTF-8"/
﹤Connector port="8080" .... URIEncoding="UTF-8"/﹥

b)JBOSS :安装目录下 server/default/deploy/jbossweb-tomcat55.sar/server.xml
﹤Connector port="8080" .... URIEncoding="UTF-8"/﹥

 

二、表单get/post传递中文乱码:

我们用一个过滤器,将所有编码转换为UTF-8
找到Tomcat安装目录下\webapps\jsp-examples\WEB-INF\classes \filters下
RequestDumperFilter.java,SetCharacterEncodingFilter.java两个文件。
加入到你的项目,修改包路径.
在web.xml文件中部署这个过滤器:

 

﹤filter﹥
  ﹤filter-name﹥Set Character Encoding﹤/filter-name﹥
  ﹤filter-class﹥SetCharacterEncodingFilter.java  的类路径

﹤/filter-class﹥
  ﹤init-param﹥
    ﹤param-name﹥encoding﹤/param-name﹥
    ﹤param-value﹥UTF-8﹤/param-value﹥
  ﹤/init-param﹥
﹤/filter﹥
﹤filter-mapping﹥
  ﹤filter-name﹥Set Character Encoding﹤/filter-name﹥
  ﹤url-pattern﹥/*﹤/url-pattern﹥
﹤/filter-mapping﹥

 

 

三、jsp页面模版:

所有jsp页面使用如下模版:

 

﹤%@ page language="java" pageEncoding="UTF-8"%﹥
﹤!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"﹥
﹤html﹥
 ﹤head﹥
  ﹤meta http-equiv=content-type content="text/html; charset=UTF-8"﹥
  ﹤title﹥               ﹤/title﹥
 ﹤/head﹥
 ﹤body﹥

 ﹤/body﹥
﹤/html﹥

 

四、数据库以Unicode编码存储数据:

MySQL数据库设置
a)windows系统: windows下安装mysql时,编码选择utf-8,查看mysql安装目录下my,ini文件,
在[mysqld]段下面加入default-character-set=utf8

b)linux系统:/etc/mysql/下my.cnf文件,在[mysqld]段下面加入default-character-set=utf8

 

五、JDBC连接参数:

注意:xml文件中,"&"是不能直接使用的, & 代替 &
Mysql数据库jdbc 连接参数
jdbc:mysql://localhost/kms?useUnicode=true&characterEncoding=utf-8
sql server数据库jdbc连接参数(强烈建议使用JTDS驱动,比微软官方驱动更好)
jdbc:jtds:sqlserver://localhost:1433/kms;TDS=8.0;charset=utf-8;
SendStringParameterAsUnicode=true

 

【编辑推荐】

  1. JPA是什么 Java EE对象持久化标准浅析
  2. 主流Java EE应用服务器横向对比分析
  3. JPA是什么 Java EE对象持久化标准浅析
  4. 部署基于WebSphere的Java EE应用
  5. Java EE开发三剑客现状及发展浅析
责任编辑:仲衡 来源: 新浪博客
相关推荐

2009-07-17 14:33:05

Jython中文问题

2009-02-18 14:28:23

编码乱码JSP

2009-08-14 13:49:58

Rails中文问题

2009-12-28 10:56:45

WPF Image

2011-03-18 18:47:34

QtMySQL

2011-06-14 13:41:27

muleWSDL

2010-05-11 15:09:51

Unix系统

2010-07-29 15:28:47

Flex安全沙箱

2009-02-26 11:13:41

Weblogic中间件JSP

2010-06-09 16:33:46

Cacti中文

2010-05-26 11:08:33

SVN管理

2010-08-03 09:12:52

Flex安全沙箱

2011-06-13 16:16:32

Qt 中文问题

2011-05-18 14:00:30

在线备份

2010-01-13 21:06:37

双绞线

2009-11-17 10:43:59

ubuntu 9.10输入法解决方法

2009-10-29 10:04:57

VB.NET Read

2010-12-31 16:31:08

服务器常见问题

2009-12-21 18:39:24

WCF字符串过长问题

2009-07-22 17:50:14

点赞
收藏

51CTO技术栈公众号