解决phpMyAdmin数据乱码问题

  最近装了MySQL 5.0后再把4.3.6的数据表放进data文件夹里边后,再到phpmyadmin里边一看全是乱码,后重新看了mysql 5.0的手册,发现加了几个character_set_%,不过改了N^2次还是没能搞定,但是用PHP程序select出来的却又是正常的.问题就是PHPMyadmin的问题了..

  在phpMyAdmin2.6以上版本因为支持多语言集,弄得我们使用phpMyAdmin管理数据库的时候,查询出来的中文都是乱码,但是在我们的PHP程序调用时却没有...

  最近装了MySQL 5.0后再把4.3.6的数据表放进data文件夹里边后,再到phpmyadmin里边一看全是乱码,后重新看了mysql 5.0的手册,发现加了几个character_set_%,不过改了N^2次还是没能搞定,但是用PHP程序select出来的却又是正常的.问题就是PHPMyadmin的问题了..

  在phpMyAdmin2.6以上版本因为支持多语言集,弄得我们使用phpMyAdmin管理数据库的时候,查询出来的中文都是乱码,但是在我们的PHP程序调用时却没有这些问题。
  看来是phpMyAdmin2.6的配置有问题了,为了解决这个问题,我上google上搜索了相关资料,这类的问题很多,但没一个可以解决的,真是没办法,看来只有自己动手解决了。。。。由于查找源代码过程非常烦琐,略最终花了半天的时间,总算找到了一个比较折衷的方法来解决。去phpMyAdmin2.6的根目录下,打开以下这个文件:libraries/select_lang.lib.php

  1、找到有”zh-gb2312″的那一行,把’zh-gb2312′ 改成 ‘zh-gb2312-utf-8’为什么这样加?那是因为服务器会把没有”-utf-8″的语言过滤掉,在libraries/database_interface.lib.php 第168行,根据英文说:“为了防止混淆”,:<或者如果不把'zh-gb2312' 改成 'zh-gb2312-utf-8',可以去掉过滤吧。把那个if去掉就OK了。   2、找到”$mysql_charset_map = array(“那一行把’gb2312′ => ‘gb2312’,改成 ‘gb2312’ => ‘latin1’,保存,OK,在进入phpMyAdmin管理,选择语言chinese simplified(zh-gb2312-utf-8)再看看你的那些中文数据。

  所以说,我的这个解决办法就只是修改libraries/select_lang.lib.php这一个文件里的两个字就行,比较方便快捷,哈哈。

One Comment

静水流深 08/11/2006

谢谢,我一向很懒不喜欢回人家贴,但这次如果不回的话,实在过意不去,因为你解决了一个让俺头痛好久的问题,原来就是这么简单。哈哈。虽然我不知道为什么,但我只要知道怎么做就行了,谢谢,很想认识你,我也是php爱好者。

QQ:87079550