phpMyAdmin-2.6.0以上版本显示MySQL数据库中文乱码问题

在使用phpMyAdmin-2.6.0以上版本进行数据库管理操作时,页面上显示的中文为乱
码。更改页面的语言设置和连接校对都没有作用,依然显示乱码。

在MySQL-4.0以上和phpMyAdmin-2.6.0以上版本组合中,会出现以上问题;在MySQL
-3.x和任意版本phpMyAdmin,或者phpMyAdmin-2.6.0一下(含2.6.0)和任意版本
MySQL不会出现上述问题。

造成以上问题的原因在于,数据库存储时的字符集,和phpMyAdmin认为的数据库字
符集,以及页面显示的字符编码没有对应到正确的值。

例如:在prima中,数据库内容的字符集为gb2312,数据库字符集是默认的
latin1,这样的数据库内容在小于等于phpMyAdmin- 2.6.0上显示没有问题,但是
在phpMyAdmin-2.6.0以上版本,默认数据库字符集都是utf-8,这时就产生了上述
问题。

所以,解决问题的关键,是把这几个值都设置成相应的正确的值。

3. 问题解决:

为了便于描述,这里拿prima来作为示例。当用户自己升级了phpMyAdmin到2.6.0以
上版本之后,登录之后发现中文都变成了乱码,但是,这时站点页面上的显示是正
常的。这是,只需要改phpMyAdmin文件中的两处,即可解决。

1) 在libararies/select_lang.lib.php文件中,找到$mysql_charset_map的赋值
段,将其中的’gb2312′ => ‘gb2312’改为’gb2312’ => ‘latin1’;
2) 在libararies/select_lang.lib.php文件中,找到$available_languages赋值
段,将’zh- gb2312’ => array(‘zh|chinese simplified’, ‘chinese_simplified-gb2312’, ‘zh’)改为’zh-gb2312-utf-8′ => array(‘zh|chinese simplified’, ‘chinese_simplified-gb2312’, ‘zh’)

修改之后,保存文件,这时登录phpMyAdmin,语言选择的时候,选择Chinese
simplified (zh-gb2312-utf-8),然后在查看数据库,这时就正常了。

4. 说明:

原则上,只需要做以上修改步骤中的第一步就可以解决问题。因为已经确定了正确
的内容字符集和数据库字符集的对应关系。phpMyAdmin中,数据库字符集是和语言
选择相关联的,所以这时只要选择Chinese simplified (zh-gb2312)就可以了。但
是,由于phpMyAdmin的设计,在页面上并不能显示出非utf-8的语言字符集选项,
所以,需要对$ available_languages进行修改。将zh-gb2312后边加上utf-8使页
面能显示出这个选项,需要使用时,选择Chinese simplified (zh-gb2312-utf-
8)。经测试,修改之后,用phpMyAdmin查看和修改数据库都没有问题,页面使用
gb2312字符编码。

5. 结论:

以上只是通过prima来说明问题,其他情况可以参照以上方法解决,无非是数据库
字符集和页面显示字符集的设定。

3 thoughts on “phpMyAdmin-2.6.0以上版本显示MySQL数据库中文乱码问题

  1. 好文章!!!!!!!谢谢大哥,,,帮了我好大忙!!!!!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注