服务器数据库:
MySQL 字符集: cp1252 West European (latin1) 新建一个数据库 设置默认编码 utf8_general_ci,
新建的表凡是串类型的字段编码均为  utf8_general_ci 通过phpmyadmin添加数据,所有中文的值都是正常。php和html编码均为: utf-8页面输出也都设置编码为utf-8从数据库读取数据出来也都进行了编码设置'SET NAMES utf8'可是为什么从数据库里读出的数据然后显示在页面就为乱码?我一直觉得跟mysql的字符集有关,但服务器不支持修改整个mysql的字符集。请问我还有什么办法吗?

解决方案 »

  1.   

    非常悲催,我一开始的编的程序默认编码都是gbk,然后问题和上面一样。。
    后来有人说叫我转一下码,我现在又全部转成utf8的问题依旧。唯一一点不同的是如果选择gbk编码的话,在phpmyadmin中数据都无法插入,换成utf8倒是可以插入数据了,但是结果读出来的全部又是乱码了
      

  2.   

    把你的“乱码”数据重新取出,贴出 eaco base64_encode('乱码数据');的结果
    你这样空对空的说明,没有一点意义。也暮可能解决问题
      

  3.   


    echo $value;
    echo '<br>';
    echo base64_encode($value);结果就是:
    ÁªÏµÎÒÃÇ 
    w4HCqsOPwrXDjsOSw4PDhyA=
      

  4.   

    本帖最后由 xuzuning 于 2011-12-04 14:07:23 编辑
      

  5.   

    我和他们的技术人员确认过,后来也分析了一下,确实是如你第1点所说,因为他的默认字符集编码是latin1,而导入数据使用的是phpmyadmin,导入过程中数据本身的编码默认仍然是latin1。所以结果就是在phpmyadmin中显示正常的时候,数据的实际存储编码就是latin1,而当以utf8编码插入数据后虽然显示乱码,但真正存储的数据的编码是utf8。真头大啊,不过还是找到问题所在了