有个程序。PHP+MySQL
PHP  utf-8
mysql  utf-8因为这个PHP代码需要插入模板里。模板用的gb2312  
用了BG2312是乱码。 用了utf8同样也是乱码。(但是我想改,因为网站都是用这个模板。)
用了GBK 也不行。也是乱码。。求高手指点一下。有没有软件。把mysql库批量转换成GB2312的。或是gbK的。
还是在程序里面用utf8输出呢?  帮帮我吧。。谢谢。

解决方案 »

  1.   

    最好是改掉模板为utf8
    首先确认你的文件 都是utf8 无bom然后确认 header里面设置了编码是utf8
    然后确认 html的meta标签是utf8如果还是不行确认你数据库中的字段是utf8
      

  2.   

    连接数据库之后,执行下面三个查询:
    mysql_query("SET character_set_client='gbk'");
    mysql_query("SET character_set_connection='utf8'");
    mysql_query("SET character_set_results='gbk'");
    如果你使用mysqli或者PDO来查询数据库,酌情修改,只要SQL语句是上面的就可以了。
      

  3.   

    那为什么不把程序文件改成 gbk 的呢?
    如果是要所谓的国际化,那请问你,有多少蓝眼睛能看懂方块字呢?
      

  4.   

    程序中有这个。原来是uft8 我改成GB2312了。还有网页里的编码我都改gbk了。
    还是乱码。乱码说的是库里输出的部份。。
    mysql_query("set character set 'gbk'");
    mysql_select_db($dbname) or die('不能连接数据库!');
    mysql_query("SET NAMES gbk");
      

  5.   

    改成GBK了。
    页面也没有问题了,只是从库里输出的是乱码。
      

  6.   

    mysql_select_db($dbname) or die('不能连接数据库!');
    mysql_query("SET NAMES GBK");如果还是乱码就去掉
    mysql_query("SET NAMES GBK");如果仍然是乱码,那么就请贴出出现乱码的字段的base64_encode 的结果
    帮你分析一下
    比如:echo $s; 出先乱码
    那么就贴出:echo base64_encode($s); 的结果
      

  7.   

    呵呵 关于哪个base64_encode  我解决了。现在就是编码有些问题。
    请问一下
    库里面的是utf8的。可以把它导在gbK吗? 或是GB2312?然后删除库。 
    然后把新导出来的数据。在导入库里。这样行吗?http://www.vipcha.net/zidian/index999999.php   这个可以。  utf8的。http://www.vipcha.net/zidian/index.php  这个gbk
      

  8.   

    mysql_query("SET NAMES GBK"); 是对的,以前数据是如何入库的,用length检查一下库里汉字的长度,如果不为3bytes,库数据有问题,需要重新导入一下