在开始之前,请务必备份!务必备份!务必备份! 包括你的网站文件和数据库,任何操作失误都可能导致网站数据丢失。

转换前准备
- 完整备份网站文件:通过FTP或服务器控制台,将整个网站目录(通常是
dede或www)下载到本地。 - 完整备份数据库:
- 登录你的网站后台,进入“系统” -> “数据库备份/还原”。
- 点击“开始执行备份”,生成一个
.sql备份文件,并下载到本地。 - 强烈建议:同时通过phpMyAdmin等工具,再导出一次完整的数据库,作为双重保险。
转换步骤详解
第一步:转换数据库编码(最关键、最易出错的一步)
数据库的转换是整个过程的基石,如果你的网站数据量很大,手动操作会非常繁琐且容易出错,推荐使用以下两种方法:
方法A:使用织梦自带的转换工具(推荐,最安全)
织梦CMS本身提供了一个UTF-8转GBK的数据库转换工具,这是最稳妥的方法。
-
上传转换工具:
- 从织梦官方论坛或可靠的资源站点下载
gbk.zip压缩包。 - 解压后,你会得到一个
gbk文件夹。 - 通过FTP,将这个
gbk文件夹上传到你的网站根目录(与dede、data等文件夹同级)。
- 从织梦官方论坛或可靠的资源站点下载
-
运行转换程序:
- 在浏览器中访问
http://你的域名/gbk/。 - 你会看到一个转换界面,需要你输入数据库信息:
- 数据库名:你的数据库名称。
- 数据库用户名:数据库用户名。
- 数据库密码:数据库密码。
- 数据前缀:你的数据库表前缀(如
dede_),请务必确认正确。
- 点击“开始转换”,这个过程可能需要几分钟到几十分钟不等,取决于数据量,请耐心等待,不要刷新页面或关闭浏览器。
- 转换成功后,会提示“转换成功”。
- 在浏览器中访问
-
清理工具:
- 转换成功后,务必立即删除网站根目录下的
gbk文件夹,以防止安全风险。
- 转换成功后,务必立即删除网站根目录下的
方法B:使用phpMyAdmin手动转换(适合有经验的用户)
如果你的网站数据量不大,或者织梦工具无法使用,可以使用phpMyAdmin。
-
导出UTF-8数据:
- 登录phpMyAdmin,选择你的数据库。
- 点击“导出”选项卡。
- 在“格式”中选择“SQL”。
- 在“SQL兼容性模式”中选择“MYSQL40”(兼容性更好)。
- 关键步骤:点击“自定义”选项卡,在“字符集”下拉菜单中选择
utf8,确保导出的SQL文件是UTF-8编码的。 - 点击“执行”,下载这个UTF-8的SQL备份文件。
-
修改SQL文件编码:
-
使用专业的文本编辑器(如 VS Code、Notepad++、Sublime Text)不要用Windows记事本打开下载的SQL文件。
-
在编辑器中,将文件编码从UTF-8转换为 GBK 或 GB2312,通常编辑器会提供“另存为”或“编码转换”的功能。
-
重要:在SQL文件的开头,找到
CREATE DATABASE语句,将其中的utf8_general_ci修改为gbk_chinese_ci。-- 修改前 CREATE DATABASE `your_database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -- 修改后 CREATE DATABASE `your_database_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
-
-
清空并导入GBK数据:
- 回到phpMyAdmin,选择你的数据库。
- 勾选所有数据表,点击“清空”(或“删除”),删除所有旧表。
- 点击“导入”选项卡。
- 选择你刚刚转换并保存为GBK编码的SQL文件。
- 点击“执行”,完成数据库的导入。
第二步:修改网站文件编码
这一步的目的是让网站所有的PHP模板文件、CSS、JS等文件从UTF-8编码变为GBK编码。
-
使用编辑器批量转换:
- 将你第一步备份的网站文件解压到本地。
- 使用支持批量编码转换的编辑器(如 VS Code 或 Notepad++)打开整个网站文件夹。
- 在VS Code中:
- 按
Ctrl+Shift+P打开命令面板。 - 输入
Save with Encoding并选择。 - 在弹出的选项中选择
GBK (Simplified, China)。 - 编辑器会提示你是否保存所有文件,选择“全部保存”。
- 按
- 在Notepad++中:
- 按
Ctrl+Alt+Shift+C打开“编码转换”对话框。 - 选择“转换为 GBK”。
- 点击“转换”,它会转换当前打开的文件,你需要手动打开所有需要转换的文件(如
index.php,head.htm等)并重复此操作,或者编写脚本辅助。
- 按
- 注意:
- 只需要转换模板文件(
.php,.htm)、CSS文件(.css)、JS文件(.js)。 - 不要转换二进制文件,如图片(
.jpg,.png)、上传的文件(.doc,.pdf)等。 data目录下的config.cache.inc.php等配置文件也需要转换。
- 只需要转换模板文件(
-
上传修改后的文件:
- 使用FTP,将本地所有转换好编码的网站文件覆盖上传到服务器上。
- 上传时,请确保你的FTP工具的传输模式是“二进制”(Binary),以避免文件损坏。
第三步:修改系统配置文件
需要修改织梦的核心配置文件,告诉系统现在使用的是GBK编码。
-
修改
/data/config.cache.inc.php:-
通过FTP或服务器文件管理器,打开
/data/config.cache.inc.php文件。 -
找到
$cfg_soft_lang这一行。 -
将其值从
'utf-8'修改为'gbk'。// 修改前 $cfg_soft_lang = 'utf-8'; // 修改后 $cfg_soft_lang = 'gbk';
-
-
修改
/include/dedesql.class.php(可选,但推荐):- 打开
/include/dedesql.class.php文件。 - 找到
function SetQuery()函数,在里面找到mysql_query($this->queryString,$this->linkID);这一行。 - 在它前面添加一行代码,设置连接字符集为GBK:
mysql_query("SET NAMES gbk", $this->linkID); mysql_query("SET CHARACTER SET gbk", $this->linkID); mysql_query("SET CHARACTER_SET_CONNECTION=gbk", $this->linkID); mysql_query("SET CHARACTER_SET_DATABASE=gbk", $this->linkID); mysql_query("SET CHARACTER_SET_SERVER=gbk", $this->linkID); mysql_query("SET SQL_MODE=''", $this->linkID); mysql_query($this->queryString,$this->linkID);
- 打开
第四步:检查与清理
-
清除缓存:
- 登录网站后台,进入“系统” -> “SQL命令运行工具”。
- 在命令框中输入
Delete Fromdede_sys_cache,然后点击“查询”执行,这会清除所有旧的缓存文件。 - 也可以通过FTP直接删除
/data/cache/目录下的所有文件(除了index.html)。
-
全面测试:
- 清除浏览器缓存,访问你的网站首页。
- 检查网站首页是否正常显示,有无乱码。
- 进入各个栏目、文章页,检查是否正常。
- 尝试发布一篇新文章、上传一张新图片,测试新增内容是否正常。
- 检查搜索功能、会员中心等常用功能是否正常。
-
最终清理:
- 确认网站一切正常后,再次检查并删除任何临时文件或工具文件夹(如之前上传的
gbk文件夹)。
- 确认网站一切正常后,再次检查并删除任何临时文件或工具文件夹(如之前上传的
总结与注意事项
- 备份数据:这是最重要的前提,无法强调。
- 顺序:严格按照“数据库 -> 文件 -> 配置”的顺序进行。
- 工具选择:优先使用织梦自带的转换工具,它最可靠,手动转换数据库风险较高。
- 文件编码:务必使用专业的文本编辑器进行批量转换,不要用记事本。
- 耐心测试:转换后不要立即上线,要进行充分的测试,确保所有功能都正常。
- 后续操作:转换后,所有新添加的模板文件、CSS、JS等,都请务必使用GBK编码保存。
遵循以上步骤,你就可以顺利完成织梦CMS从UTF-8到GBK的编码转换,如果在操作中遇到问题,请随时提出。
