Mysql的中文乱码问题--EMS解决方案
2010-06-24 9:08开发环境:MyEclipse5.5,mysql5.0.22,EMS5.0,jdk6.0,tomcat6.0
误区:想在界面显示中文就必须将编码设置为GB2312或者GBK,utf8足以完成这些,并且界面的解析更好更广泛。
四个地方设置好即可:
1)my.ini文件中:default-character-set=utf8,客户端[mysql]和服务端[mysqld]均为如此,如果不设置的话会默认为latin1.;
2)创建数据库时:create database xxx default character set=utf8 default collate=utf8_unicode_ci;将数据库也设置为utf8;
3)连接数据库时:jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8,呵呵,这句话在4.0之后就不再需要了,所以你只需要写jdbc:mysql://localhost:3306/db就足够了,否则可能会报错——“这句话需要以;结束”;
4)jsp,后台java代码:只需要设置成utf8即可,而大多数工具生成jsp页面时默认的编码均为utf8,也有一些事iso8859-1的,改成utf8即可;
5)EMS注意事项:使用EMS执行数据库生成脚本和数据导入sql脚本时,导入的中文显示均为“?”,让我很郁闷。很多资料说,让EMS的register数据库时client character set设置为utf8即可,但是细心的您可能发现EMS5.0的client character set根本就没有utf8选项,呵呵,怎么办呢?简单,只需要设置成gb2312或gbk即可,但是需要注意导入sql脚本之后,再修改这个选项是不起作用的,数据显示仍然还是“?”,所以需要在数据导入之前将client character set设置好,这也就需要将数据库生成sql脚本和数据导入sql脚本分开执行!!!切记!