核心原因分析
就是网站的“语言”和数据库的“语言”没有统一,导致在传输和显示过程中,中文变成了看不懂的乱码(如 )。

(图片来源网络,侵删)
- 网站编码:你的网站是
UTF-8还是GB2312(GBK)? - 数据库编码:你的数据库(MySQL)是
utf8还是latin1(GBK)? - PHP环境编码:PHP脚本在处理时使用的默认编码是什么?
这三个地方的编码如果不统一,就极有可能出现乱码。
解决方案(请按顺序排查)
第一步:检查并统一网站后台编码(最常见原因)
这是最可能的原因,也是最容易解决的。
- 登录FTP或进入服务器文件管理,找到你的网站根目录。
- 找到并打开
/dede文件夹(这是后台文件夹)。 - 在这个文件夹里,找到
config.php文件,用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开它。 - 找到这一行代码:
$cfg_soft_lang = 'utf-8';
- 如果你的网站是 UTF-8 编码,这行代码应该是
utf-8,如果不是,请修改并保存。 - 如果你的网站是 GBK 编码,这行代码应该是
gbk,如果不是,请修改并保存。
- 如果你的网站是 UTF-8 编码,这行代码应该是
重要提示:请务必确认你的网站是哪种编码!你可以通过检查网站首页的源代码(在浏览器里右键“查看网页源代码”),找到 <head> 标签里的 <meta charset="UTF-8"> 或 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 来确认。
做完这一步后,清空浏览器缓存,重新尝试登录,如果解决,恭喜你!如果不行,请继续下一步。

(图片来源网络,侵删)
第二步:检查并统一数据库编码
如果第一步无效,那问题很可能出在数据库上。
- 登录你的网站数据库管理工具,通常是
phpMyAdmin。 - 在左侧选择你的 DedeCMS 数据库。
- 在顶部菜单栏,点击 “操作” (Operations) 选项卡。
- 在 “数据库编码” (Database collation) 下拉菜单中,查看当前的编码设置。
- 如果你的网站是 UTF-8 编码,这里应该选择
utf8_general_ci或utf8mb4_general_ci。 - 如果你的网站是 GBK 编码,这里应该选择
gbk_chinese_ci或latin1_swedish_ci(GBK环境下latin1也能正常显示中文)。
- 如果你的网站是 UTF-8 编码,这里应该选择
- 如果发现编码不正确,请修改它,然后点击 “执行” (Go)。
注意:修改数据库编码是一个比较重要的操作,虽然对现有数据影响不大,但最好提前备份数据库以防万一。
第三步:检查PHP环境配置
PHP的默认字符编码设置也会影响。
- 在FTP或服务器文件管理器中,找到网站根目录。
- 创建一个名为
phpinfo.php的文件,内容如下:<?php phpinfo(); ?>
- 在浏览器中访问这个文件,
http://你的域名.com/phpinfo.php。 - 在页面中搜索
default_charset,查看它的值。- 如果你的网站是 UTF-8,这里应该显示
default_charset => "UTF-8"。 - 如果不是,你需要修改
php.ini文件来设置它,这个文件通常在服务器的/etc/目录下(Linux)或与php.exe同目录(Windows),修改后需要重启你的Web服务器(如Apache或Nginx)。
- 如果你的网站是 UTF-8,这里应该显示
第四步:检查数据库连接配置文件
这个文件定义了网站连接数据库时使用的编码。

(图片来源网络,侵删)
- 在FTP或服务器文件管理器中,找到网站根目录下的
/data文件夹。 - 找到
config.cache.inc.php文件(注意,是cache版本),用代码编辑器打开。 - 找到
$cfg['db_language']这一行,检查它的值:$cfg['db_language'] = 'utf8'; // 或 'gbk'
这里的值必须和你的数据库编码保持一致,修改后保存。
第五步:终极解决方案——重新安装后台(慎用)
如果以上所有方法都无效,可能是后台核心文件在升级或修改过程中被损坏,这时可以考虑重新上传一个干净的后台。
- 备份!备份!备份! 重要的事情说三遍,备份你的
/dede文件夹和数据库。 - 下载一个与你当前DedeCMS版本完全一致的官方安装包。
- 从安装包中解压出
/dede文件夹。 - 通过FTP,用这个解压出来的干净
/dede文件夹,覆盖掉你服务器上原有的/dede文件夹。 - 覆盖时,请务必保留你原来的
config.php和config.cache.inc.php文件,因为里面包含着你的数据库连接信息,你可以先把这两个文件备份出来,然后覆盖,再把它们复制回去。 - 覆盖完成后,重新尝试登录。
总结与排查清单
遇到后台登录乱码,请按以下清单快速排查:
| 问题点 | 检查方法 | 解决方案 |
|---|---|---|
| 后台语言设置 | 检查 /dede/config.php 中的 $cfg_soft_lang |
修改为与网站编码一致(utf-8 或 gbk) |
| 数据库编码 | 在 phpMyAdmin 中检查数据库的排序规则 |
修改为与网站编码一致(utf8_general_ci 或 gbk_chinese_ci) |
| PHP默认编码 | 创建 phpinfo.php 文件,搜索 default_charset |
修改 php.ini 文件中的 default_charset |
| 数据库连接编码 | 检查 /data/config.cache.inc.php 中的 $cfg['db_language'] |
修改为与数据库编码一致 |
| 后台文件损坏 | 排除以上所有可能后 | 用官方安装包覆盖 /dede 文件夹(保留配置文件) |
按照这个流程,99% 的DedeCMS后台登录乱码问题都可以得到解决,祝你成功!
