刚开始做这个项目的时候我们用的是gb2312的编码,后来又换了一个技术部主管,要我们换成utf-8的编码,经过多次的实践,总结出以下一些方法。希望能帮助遇到同样问题的人。
先说一下我们的项目的环境,系统是win2003,数据库是mysql,web服务器用的tomcat
首先,第一步是处理数据库。
1、把数据库的数据全部导出成db.sql文件,我用的是mysql_front客户端。然后去编辑器打开db.sql,把ENGINE=InnoDB
DEFAULT CHARSET=gbk ROW_FORMAT=COMPACT COMMENT='表';
改成ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT
COMMENT='表';
然后把文件另存成utf-8格式。
2、把原来的数据库删掉或改名,(注意备份)用db.sql文件直接创建数据库,即可。
第二步,把所有jsp页面的
errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;
charset=UTF-8" %>改成这个,然后把页面都另存为utf-8格式。
第三步:把所有的calss文件都另存为utf-8格式。然后编译。在web.xml中设置一个过滤器把编码格式设成utf-8.
Set Character
Encoding
org.filter.EncodingFilter
encoding
UTF-8
这样就可以完成整个项目的编码的由gb2312到utf-8的编码转化了。
说明一下:这种方式可以转换成功,当然可能还有其他的方式可以实现,需要大家多多交流!