在一次实践中自己遇到中文乱码的解决流程
主要是html前端页面,php文件,MySQL三者编码的统一
1、显示数据库当前字符集 show variables like "%char%";
若不统一,可以set names utf8;
2、show create table tb_name查看表和字段的编码
将其都设置为utf8
3、都统一后直接使用dos插入中文却出现问题,直接无法插入中文
但是在没有更改php文件编码以及php代码的情况下(此时php文件编码是gbk,并且mysql_set_charset("gbk")),
网页页面上直接添加是成功无乱码的。
4、网上查找原因
“我们用的windows是中文的,那么dos的输入输出也就是GB2312的编码,而你在mysql里设置为utf8,
所以mysql会把dos的gb2312的字符当做utf8来处理,所以会出现问题。那么我们不能改dos的字符处理编码,就只能
将mysql改为gb2312或者gbk了”
5、了解原因后,不再从dos里输入
6、把php文件编码换成utf8(zend studio->edit->set encoding)
7、把浏览器的显示编码设置成utf8
8、把php的header里的charset设置为utf-8
9、<meta>里的编码设置为utf-8
10、php连接数据库时的mysql_set_charset设置为utf8
新闻热点
疑难解答