在开发程序时,经常会遇到乱码的问题.简单总结一下在工作中遇到乱码时的解决方法,这些方法有时只要注意一个地方就可以解决乱码,而有时需要细心排查,才能找出真正的原因.
一.mysql数据库相关
1.mysql数据库安装完后,在/usr/local/mysql/share/mysql
目录下打开my-medium.cnf(或其它my-*.cnf文件),添加字符集设置。
在[mysqld]、[mysqldump]、[mysql]段中的配置中添加:
default-character-set=gbk
将修改后的文件保存到/etc/my.cnf。
2.在设置数据库连接串时,可通过指定characterEncoding来设置字符集,例如:
jdbc:mysql://172.16.101.159:3306/dbname?useUnicode=true&characterEncoding=GBK
二、jsp文件相关
在jsp文件中设置字符集,将jsp文件的第一行改为
<%@ page language="java" pageEncoding="gbk" contentType="text/html; charset=gbk"%>
三、web.xml文件
有的应用采用继承javax.servlet.Filter来设置字符过滤器的,可能会在web.xml文件中设置字符集。
四、系统环境变量之类
比如在resin中,可以在httpd.sh文件中添加如下代码,设置其使用的系统环境字符集
export LANG=zh_CN.GBK
export LANGUAGE=zh_CN.GBK