前言:
很久以前学习mysql和php,下载了discuz gbk 建设论坛,一直没什么问题,mysql 里面中文数据全是乱码也没管,反正论坛发帖什么的一切正常。然后最近由于服务器和个人需求的一些原因,需要用discuz utf8版本, 下载安装导入原论坛数据,发现全是乱码(不奇怪)
于是就想解决这个问题,并且解决phpmyadmin 显示中文乱码的问题,结果发现自己无法做到。具体情况如下:
问题:
现来看看我sever, mysql的配置:

然后看看其中一个table的定义:

可以看到很多字段都是latin_xxx...
然后进去一个table内容看看:

可以看到乱码了把,当然无论我怎么更改浏览器的character encoding,都是无法显示中文的。
顺便再说说,我原来的discuz(gbk版本)的config.inc.php关于编码字符集的配置:
$database = 'mysql'; // 论坛数据库类型,请勿修改
$dbcharset = 'latin1'; // MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定
$charset = 'gbk'; // 论坛页面默认字符集, 可选 'gbk', 'big5', 'utf-8'
$headercharset = 0; // 强制论坛页面使用默认字符集,可避免部分服务器空间页面出现乱码,一般无需开启。 0=关闭 1= 开启
好了,我的问题就是,如何倒腾这个database,使之在我现在这个phpadmin里面能正确显示中文(我估计是要编码utf8?)
我估计这个问题解决了,新的discuz utf8的乱码问题应该也会得到解决了。可惜上网查了n个关于转换编码的,我都试过了,
包括dump了后采用default-character-set==utf8,或者替换sql文件里面所有的latin1 为 utf8。
现在我很疑惑,到底我现在的数据是什么编码?latin1? 那discuz gbk版本是如何正确把所有中文字(帖子)等显示出来的?
希望我说明白了。
thanks in advance
[ 本帖最后由 newwaylw 于 2008-7-16 23:59 编辑 ] |