hi,
我先说下我的情况。php的新手。
----现象
输出的页面中,我已经添加了<meta charset="UTF-8">,我也在查询mysql的时候,添加了
mysql_query("set character set utf8");
 mysql_query("SET NAMES 'UTF8'");
有的中文可以显示,有的不能。----乱码显示的过程和代码
我的phpmyadmin中数据库和text字段,都是用 utf8_unicode_ci进行设置。我手动通过phpmyadmin在数据库添加的中文,然后直接执行
 mysql_query("set character set utf8");
 mysql_query("SET NAMES 'UTF8'");
$rs = $db->query("SELECT * FROM book");
显示出乱码。----正常显示的代码和意外的结果
 mysql_query("set character set utf8");
 mysql_query("SET NAMES 'UTF8'");
$rs2 =$db->exec("INSERT INTO `lalabook`.`book` (`bookname`, `bookdes`) VALUES ('小兵', '兵小')");
$rs = $db->query("SELECT * FROM book");
可以正常的显示出我插入的数据。但是有个问题是,我在通过phpmyadmin查看我插入的数据时,显示的时乱码。
----
所以我不清楚这个时什么原因造成的,是不是我以后插入数据都要通过代码。不能再用phpmyadmin插入了

解决方案 »

  1.   

    在phpmyadmin  内直接执行 SET NAMES 'UTF8' 然后再SELECT ....出来的结果呢?
    phpmyadmin也是需要设置链接编码的.
      

  2.   

    我在phpmyadmin中运行SET NAMES 'UTF8';
    select * from book;
    ----结果
    bookname  bookdes
    哥哥  哥哥弟弟
    弟弟  弟弟哥哥弟弟
    123  123213
    454  45644
    bing  bggg
    小兵  兵小---其中
    哥哥  哥哥弟弟
    弟弟  弟弟哥哥弟弟
    这两条是我手动在phpmyadmin插入的,通过php查询结果是乱码
    小兵  兵小 是php代码插入的,插入的数据是‘小兵,小兵’,通过php查询结果是'小兵,小兵'----我是完全统一的utf8. 难道我插入的时候设置的  mysql_query("SET NAMES 'UTF8'");  UTF8是不同的编码吗?
    我phpmyadmin中,库和table表结构中都是用 utf8_unicode_ci。
      

  3.   

    是虚拟主机吧, 一切都是正常的.用户提交Utf8,php操作入库,出库就可以了。phpadmin乱码是因为mysql_server编码一般服务商都是latin的,但服务商一般都保证connenct/client/result是utf8的,也就是数据出入的编码是utf8,存储的时候是latin,所以去phpadmin看php操作的会乱码。另外,在phpadmin里执行sql插入的数据,在php读取的时候会乱码,这个问题是很神奇的,我也没看phpmyadmin页面是什么编码。一句话:设置库,表,列的编码全部是utf8-unicode-ci,之后数据的出入库都采用utf8编码,不要在意phpadmin查数据时候乱码,不会影响用户即可。
      

  4.   

    编码常用的是utf8-general-ci
    不只是表要通一,要统一的总共有四处
    一是:数据库类型,其中包括,数据库,表,字段三处都要统一,可以检查一下
    二是:文件的编码类型,你若用dw或editplus可以查看页面编码,不同需修改
    三是:访问数据库时的设置既set NAMES utf8;
    四是:浏览器显示方式,既<meta charset=utf-8>
    这四处必需统一,否则可能会出现问题
      

  5.   

    谢谢。现在已经不关注phpadmin了。开始完全code进行控制了。