如何将数据库编码修改为UTF-8
ZBlog 数据库必须设为 utf8(推荐 utf8mb4),且所有表、字段、连接、模板文件全统一为 UTF-8 无 BOM,才能彻底不乱码。下面用最安全、最常用的 phpMyAdmin 可视化操作 + SQL 命令两套方法,你选一个就行。
⚠️ 第一步:先备份数据库(非常重要)
无论怎么改,先导出整库备份:
登录 phpMyAdmin → 选中你的 ZBlog 数据库
顶部点 导出 / Export → 格式选 SQL → 直接执行,保存到本地。
一、查看当前编码(先确认)
进入 phpMyAdmin → 选中数据库 → 执行 SQL
SHOW VARIABLES LIKE 'character_set%';
SHOW CREATE DATABASE 你的库名;
character_set_database:当前库编码ZBlog 正常应该是:utf8 / utf8mb4,排序规则
utf8_general_ci或utf8mb4_unicode_ci。
二、方法 A:phpMyAdmin 图形化改(新手推荐)
1)改数据库编码
左侧点你的数据库名
顶部:操作 / Operations
找到:整理(排序规则)
选:utf8_general_ci(或 utf8mb4_unicode_ci)
下面勾选:将所有表的整理也修改(有就勾)
执行。
2)批量修改所有表编码
回到数据库首页,勾选全选所有表
下拉菜单选:操作 / 批量操作
字符集:utf8,排序:utf8_general_ci
执行。
这样会把库 + 表都改成 UTF-8。
三、方法 B:SQL 命令(更快,适合熟悉一点的)
1)改数据库
ALTER DATABASE 你的库名
CHARACTER SET utf8
COLLATE utf8_general_ci;
(想用 emoji 就把 utf8 换成 utf8mb4,排序用 utf8mb4_unicode_ci)
2)批量改所有表(一条一条执行,或批量生成)
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ZBlog 常见表:
zbp_articleszbp_categoryszbp_commentszbp_memberszbp_tags... 全部都要改一遍。
3)临时修复连接编码(防止程序连接还是 GBK)
在 ZBlog 数据库配置文件 zb_users/c_option.php 里,确认:
// 一般这里已经是 utf8 define('DB_CHARSET', 'utf8');然后在 phpMyAdmin 执行一次(每次连接生效):SET NAMES utf8;等价于:SET character_set_client=utf8; SET character_set_connection=utf8; SET character_set_results=utf8;
四、ZBlog 配套必须做的(不然还乱码)
模板文件全部 UTF-8 无 BOM用 Notepad++ 打开主题目录
THEMES/你的主题/下所有.html:菜单:编码 → 转为 UTF-8(无 BOM)
保存、覆盖上传
内页模板必须有
<meta charset="UTF-8">放在<head>最前面。.htaccess加:
AddDefaultCharset UTF-8改完清 ZBlog 缓存后台 → 网站设置 → 清除缓存;浏览器强制刷新(Ctrl+F5)。
文章由 否玩代码 编辑 www.fouwan.com


