if (!$this->conn = @mysql_connect(dbhost, dbuser, dbpass)) {
            qqhlMsg("Mysql用户名或密碼錯誤");
        }
        if ($this->getVersion() > '4.1') {
            mysql_query("SET NAMES 'utf-8'");
        }        $query = $db->query("select * from Setting");
        while ($setting = $db->fetch_array($query)) {
            echo $setting['val'] . "<br>";
        }打印的是一堆的乱码

解决方案 »

  1.   

    页面,文件各是什么编码?请与数据库的一致,都用utf-8
      

  2.   

    浏览器的默认编码呢,如果少了 meta 就可能这样
      

  3.   

    在开头加上
    echo (header("Content-Type: text/html; charset=utf-8"));
    或者
    echo (header("Content-Type: text/html; charset=gbk"));
      

  4.   

    2,3,4楼的,        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    这句本来就有加上 header("Content-Type: text/html; charset=utf-8"); 也不好使
      

  5.   

    还有还有
    dbhost, dbuser, dbpass 是什么东西,不是应该
    $dbhost, $dbuser, $dbpass么?
      

  6.   

    你已经完蛋了
    是 mysql_query("SET NAMES 'utf8'");
    而不是 mysql_query("SET NAMES 'utf-8'");在修改代码之前插入的内容,需要特殊处理后方能正确显示
      

  7.   


    mysql_query("SET NAMES 'utf8'"); 改成这样还是乱码
      

  8.   


    汗,都没看到大家的回复。1.文件保存为utf-8格式的2.代码中加上header("content-type:text/html;charset=utf-8");
      

  9.   

    请确认你的程序也utf-8编码。
    加上header函数。把数据库的数据删除重新插入读取出来。
      

  10.   


    在netbeans下开发的,用记事本另存为utf8 也试过,还是这样
      

  11.   

    cmd命令行下不是乱码,说明编码应该是gbk的。
    mysql_query("SET NAMES 'GBK'");
    试下
      

  12.   

    header("Content-Type: text/html; charset=gbk");
    这个加到代码文件首行 
      

  13.   

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">这里不是UTF-8
    写成utf8
      

  14.   

    这孩子,真可怜。
    三个地方注意一致了:
    1.入库前,查询前,都用mysql_query("set names 'utf8'");或者mysql_query("set names 'gbk'");
    2.文件编码格式
    3.浏览器解码格式用head或者meta.
      

  15.   

    无语了mysql_query("SET NAMES 'gbk'");
    header("Content-Type: text/html; charset=gbk");也是乱码我用JAVA测试了下,同样也是乱码,。       while(rs.next()){
               String val = new String(rs.getString(3).getBytes("ISO-8859-1"),"gbk");//这里用gbk转换就不乱码了
               System.out.println(val);
           }为什么PHP 不行呢
      

  16.   


    if (!$this->conn = @mysql_connect(dbhost, dbuser, dbpass)) {
      qqhlMsg("Mysql用户名或密碼錯誤");
    }
    if ($this->getVersion() > '4.1') {
      mysql_set_charset("utf8",$this->conn);
    }$query = $db->query("select * from Setting");
    while ($setting = $db->fetch_array($query)) {
      echo $setting['val'] . "<br>";
    }
      

  17.   


    怀疑你文件编码没改啊,发来看看。
    [email protected]
      

  18.   

    这文件是什么编码?数据库是什么编码我不清楚,我的效果是页面是UTF8编码
      

  19.   

    我现在所有文件都是GBK 页面也是GBK
    数据库不清楚mysql_query("SET NAMES 'gbk'");
    mysql_query("SET NAMES 'utf8'");都是乱码
      

  20.   

    1、尝试取消所有类似 mysql_query("SET NAMES 'gbk'"); 的代码
    2、贴出一个乱码字段的 bas64 编码的结果,可依此指导你该如何做
      

  21.   

    有可能你在不停的转换过程中已经将文档弄乱了.
    做一些简单的测试
    新建一个UTF-8 格式的PHP文档
    <?php
    header("content-type:text/html;charset=utf-8");
    echo '今天是國慶節.';
    ?>echo 一句中文字符
    到浏览器以UTF-8格式查看
    在正常情况下 重新將下面的代碼粘貼并且将数据库/表 事先转换成UTF8格式.   if (!$this->conn = @mysql_connect(dbhost, dbuser, dbpass)) {
                qqhlMsg("Mysql用户名或密碼錯誤");
            }
            if ($this->getVersion() > '4.1') {
                mysql_query("SET NAMES 'utf8'");
            }        $query = $db->query("select * from Setting");
            while ($setting = $db->fetch_array($query)) {
                echo $setting['val'] . "<br>";
            }我想正常情況不因該會出現問題了