本文共 1133 字,大约阅读时间需要 3 分钟。
为了顺利的开发一个多语言的国际化J2EE程序,需要修改数据库字符集,我的做法如下:
安装 MySq时选择字符集为UTF-8
修改MySql安装目录下的my.ini中配置的默认编码:
该文件中有两处这样的配置:default-character-set=latin1
将这两处改成:default-character-set=utf8
新建数据库需指定字符集:
UTF8: CREATE DATABASE mmtye DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
在命令行查看字符集编码:show variables like '%char%'; 会看到如下信息:
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8
character_sets_dir | D:\MySQL\share\charsets\
以上内容在重启MySql后也一直有效,无需每次启动数据库都要指定。
A、为了在命令行下能正确查看中文,命令行下执行:
set character_set_results=gbk;
B、若需要在windows命令行执行insert、update,则执行:
set character_set_client=gbk;
A、B 两个命令重启数据库前有效,重启后就失效了。
补充:
这个只是解决了mysql的编码,但是没有解决j2ee的编码问题。
解决j2ee编码问题步骤:
1.设置mysql的字符编码为utf-8,可以在安装的时候设置,也可以用楼主的方法设置
2.设置容器的编码:比如tomcat,打开server.xml,找到8080 加速URIEncoding="utf-8"
3.设置url的字符编码。应为url传递参数默认都是iso8859-1,所以需要将头信息改成utf-8,可以自己写个过滤器修改头信息,也可以用spring现有的过滤器。
以上3点完成,这才叫彻底解决编码问题了
如果SSH2框架的话,还需要在Action中加上序列化serialVersionUID,在数据库连接的地方我常常也会加一个characterEncoding=utf-8
分享到:
2010-11-24 22:11
浏览 945
分类:数据库
评论
转载地址:http://pqnrp.baihongyu.com/