java 中文乱码问题的解决——原则和检查步骤
@for &ever 2009-10-21
一、原则
整个应用中的所有部分,采用统一的编码。
二、检查步骤
根据上面的原则,可以考虑以下步骤操作:
例如,选择统一的 UTF-8 编码(其他编码类似);
1、文件的编码
使用 EmEditor 等能够设置编码的工具打开文本文件(html、ftl、jsp、shtml),将文件保存为 UTF-8 编码编码格式
2、urlencode
如果涉及到通过 URL 传递参数,就需要设置。
通常使用 URLEncoder.encode 将参数的值进行 UTF-8 编码即可。
3、filter的配置
考虑增加一个全局的filter过滤器,设置编码 UTF-8 。
4、服务器操作系统的编码配置
windows系统一般不会出现问题,linux系统需要设置系统的编码。
修改 /etc/sysconfig/i18n文件,增加
LANG="en_US.UTF-8"
LANG="zh_CN.UTF-8"
LANG="zh_CN.GB18030"
LANG="zh_CN.gb2312"
等并使修改生效
5、应用服务器的编码配置
例如,对于tomcat,可以修改
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
段,增加
URIEncoding="UTF-8"
6、DB的编码配置
DB的编码也设置为和全局的编码一样。
例如,对于mysql,所有的表格建立时,增加 CHARSET=utf8 的设置。
7、其他
在java代码与数据库连接时,连接串注意写法,要加入编码的设置。
例如,增加 characterEncoding=utf8
jdbc:mysql://localhost:3306/forandever?characterEncoding=utf8
@forandever 2009-10-21