学习NO.1 发表于 2017-1-21 22:16:04

DISCUZ在线会员的名称出现乱码的具体解决方法

今天道勤主机小编在上班的时候遇到了使用免备案空间搭建的discuz论坛,这位朋友当时只是说新安装一个discuz,然后导入以前的数据库,但是当导入进去之后发现了一个问题这个问题的出现就是之前的数据库表缺少了三张表,导致无法正常的打开前台与后台,所以道勤主机小编就按照报错的提示进行补表的操作,这些操作完毕之后,都能正常的打开了,当时也没有发现有乱码的情况,当有在线会员的时候发现了一个问题,就是中文的显示一顿的???,这种情况就是乱码的情况,当时道勤主机小编也没有感觉这个到底是哪里的问题,当时查看了会员表里面的数据都是正常的显示的没有任何的异常,并且程序的编码格式也是与数据库的编码格式一致的,所以出现这个问题不是文件的问题导致的。接下来就看看道勤主机小编是怎么解决掉这个问题的吧?
通过了种种的排除,确实是找不出问题的所在,于是道勤主机小编就使用了discuz后台自带的数据库检验功能,就是登陆后台–站长–数据库–检验,如图1所示:

经过检测之后发现了一个问题,就是说刚刚加入的三张表的编码格式不对,于是小编就知道是啥问题了,当时插入这个表的时候,道勤主机小编没有对这个表进行指定编码格式,那么是不是这个问题还不是很不清楚,但是根据表的字段的意思,应该是八九不离十了,这些表都是记录的是session所以的话,我们就是把之前加入的这个表进行删除,然后在导入sql的时候加入一个charset=gbk。比如:
CREATE TABLE IF NOT EXISTS `pre_common_admincp_group` (
`cpgroupid` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`cpgroupname` varchar(255) NOT NULL,
PRIMARY KEY (`cpgroupid`)
) ENGINE=MyISAM charset=gbk;然后从新在phpmyadmin从新把这些表导入就成功解决掉了这个问题,希望这篇文章能帮助到您。
页: [1]
查看完整版本: DISCUZ在线会员的名称出现乱码的具体解决方法