mysql表默认是用latin1编码。像phpbb那样,虽然表是latin1编码,但内容一般都是gb2312编码插入的。直接在phpmyadmin上 语言:中文 - Chinese simplified 下查看是乱码
看起来乱码倒也没什么,有时想直接在上面修改一下就麻烦了。不知有无其他更好的方法,这里通过修改一下配置便可以正常显示
以 phpMyAdmin - 2.11.9.5 版本为例
打开 libraries/select_lang.lib.php 查找 PMA_langList() 可以看到返回一个数组,而数组中编码后面都紧接着utf-8。无论哪种编码,phpmyadmin在输出内容到页面时都是用 utf-8编码。现在要增加一个gb2312的编码,在数组最后加上
'zh-gb2312-utf-8' => array('zh|chinese simplified latin1', 'chinese_simplified-gb2312', 'zh', '中文'),
然后将gb2312输出对应的mysql字符集改成 latin1,查找 $GLOBALS['mysql_charset_map']
将 'gb2312' => 'gb2312',
改成 'gb2312' => 'latin1',
重新打开phpmyadmin。语言选择 中文 - Chinese simplified latin1
可以看到 mysql 字符集是 latin1
再进入数据表查看一下,不出意外的话,显示正常的中文了。
这时要查看其他编码的表,也要把语言选择从 中文 - Chinese simplified latin1 改成 中文 - Chinese simplified 才能显示正常。