解决MYSQL后台utf8编码,前台页面显示错误的问题

在前台页面里面,从数据库中选择出来的数据表中文项目,有的是正确的编码显示,有的是错误的乱码,分析后知道,原因可能有3种:

1. mysql_server 的语言环境应该为zh_CN.GBK ,同时数据库的环境变量中要把各个数据库中的字符集设定为utf8;

2. 页面前台输出需要转码

3. 运行客户端的时候,没有设定utf8编码就把数据库表建立,使得数据库表中本身插入的就是乱码

我遇到的起初认为是1;最后发现是3

错误的原因:

正确的解决方法:

解决utf8字符集的问题

mysql -h127.0.0.1 -P3336 -uroot < initTables.sql
mysql -h127.0.0.1 -P3336 -uroot < initMacro.sql  
mysql -h127.0.0.1 -P3336 -uroot < initUsers.sql
mysql -h127.0.0.1 -P3336 -uroot < initRoles.sql
mysql -h127.0.0.1 -P3336 -uroot

这样插入的表,本身就是乱码,显示到前台,当然也是乱码了

解决utf8字符集的问题
[aimm@aixuning MySQL]$  mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initTables.sql
[aimm@aixuning MySQL]$  mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initMacro.sql  
[aimm@aixuning MySQL]$  mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initUsers.sql
[aimm@aixuning MySQL]$  mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initRoles.sql
[aimm@aixuning MySQL]$  mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot