我数据库操作用的是PDO,apache中的默认字符是UTF8,MYSQL也是UTF8,但是在读取MYSQL中的中文数据显示的是乱码;当从PHP写入MYSQL也是乱码,但是如果从PHP中再读取这些数据,又会正常,不知道问题出在哪里。
网上说设置 mysql_query("SET NAMES 'uft-8')我也试了,但还是不行,如下(一个单独的文件“pdo.conn.php”):
<?php
$user = "root";
$pass = "root";
try {
$dbh = new PDO('mysql:host=localhost;dbname=corporate',$user,$pass,array(PDO::ATTR_PERSISTENT=>true));
mysql_query("set names 'utf-8'");
} catch (PDOException $e) {
printf("Failed to obtain database handle %s",$e->getMessage());
}

?>
请问各位是如何解决的,谢谢!

解决方案 »

  1.   

    mysql_query('SET NAMES utf8');另外,你的网页编码也要设为utf8:
    源文件另存一下,设置为UTF8编码无BOM格式,head中加入:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      

  2.   

    如果是某些国外的空间,可能默认字符集也不是utf-8,即便你网页指定了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />可能网页还会乱码,那么你还要加上:
    <?php
    ini_set('default_charset', 'utf-8');
    ......
    ?>
      

  3.   

    谢谢大家,不过我的是这么解决的:$dbh->query("SET NAMES 'utf8'");
      

  4.   

    你的浏览器的编码。你的开发工具的编码,数据库编码, 等全部统一后,保证不会出错。
    --reply by CSDN Study V1.0.0.3 (starts_2000)
      

  5.   

    mysql里面utf8不要那一行 ,不认的 写utf-8是不对的.