确保三码合一就可以了..
创新互联是一家专业提供清流企业网站建设,专注与成都网站设计、网站建设、H5页面制作、小程序制作等业务。10年已为清流众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
第一个是数据库的字符集
第二个就是存进去的时候字符集
第三个就是显示的时候的字符集
这三个都有可能造成乱码;
第一个 举例是:如果你插入的时候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能乱码了.
第二种情况就是你插入正确 但你查询的时候以UTF8查询出来,但你在HTML页面里设置编码如果非UTF8那么也有可能造成乱码.
单双引号的问题
将 '$this-ecoding' 改成 "$this-ecoding" 就可以了。在php中,单引号中的内容不会被转义,也就是说 ‘$this-ecoding' 只是字符串$this-ecoding,并不是变量; 双引号中的变量会被转义。
php数据库中文乱码的解决办法:1、创建数据库时,规定字符类型为uft8;2、创建表时,规定字符类型为utf8;3、在PHP的MySQL连接函数中,添加语句“mysql_query("set names 'utf8'")。
1、页面代码里面要设置charset=utf-8
2、保存页面文件时要编码格式为utf-8
3、数据库有关的表、字段、的编码为utf8-general-ci
还不对的话,看下面。
我是这样解决的:
$dbh = new PDO('mysql:host=localhost;dbname=test','root','');
$dbh-exec("SET NAMES 'utf8';");
或者没用PDO
mysql_query("set names 'utf-8'");