中文乱码出现的关键:php文件编码,html文件编码,mysql数据库编码是否统一?
其中msyql数据库编码很多人会搞错,里面有默认的编码格式,需要修改mysql.ini配置文
件character-set-server=utf8
第一、php文件编码
①设置header("content-type:text:html;charset=utf-8");
②使用记事本之外的编辑器保存文件为无bom头的utf8格式;
第二、html文件编码
①设置<meta charset="utf-8" />----HTML5通用格式;
②同php;
第三、mysql数据库编码
①创建数据库选择utf8格式;
②使用sql命令“SHOW VARIABLES LIKE ‘character%’;”查看完整的编码表;样本如下
如果发现有些不是utf8格式的,修改mysql配置文件:
1、在[client]字段里加入default-character-set=utf8,如下:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2、在[mysqld]字段里加入character-set-server=utf8,如下:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
3、在[mysql]字段里加入default-character-set=utf8,如下:
[mysql]
no-auto-rehash
default-character-set=utf8
修改完成后,service mysql restart重启mysql服务就生效。
4、如果上面的都修改了还乱码,那剩下问题就一定在connection连接层上。解决方法是在发送查询前执行一下下面这句(直接写在SQL文件的最前面):
SET NAMES ‘utf8′;
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
来自ansion博客
2016-8-26