您好!欢迎访问否玩代码!
广告位

如何将数据库编码修改为UTF-8

栏目: 日期: 浏览:21

ZBlog 数据库必须设为 utf8(推荐 utf8mb4),且所有表、字段、连接、模板文件全统一为 UTF-8 无 BOM,才能彻底不乱码。下面用最安全、最常用的 phpMyAdmin 可视化操作 + SQL 命令两套方法,你选一个就行。

⚠️ 第一步:先备份数据库(非常重要)

无论怎么改,先导出整库备份

  1. 登录 phpMyAdmin → 选中你的 ZBlog 数据库

  2. 顶部点 导出 / Export → 格式选 SQL → 直接执行,保存到本地。

一、查看当前编码(先确认)

进入 phpMyAdmin → 选中数据库 → 执行 SQL

SHOW VARIABLES LIKE 'character_set%'; SHOW CREATE DATABASE 你的库名;

  • character_set_database:当前库编码

  • ZBlog 正常应该是:utf8 / utf8mb4,排序规则 utf8_general_ciutf8mb4_unicode_ci

二、方法 A:phpMyAdmin 图形化改(新手推荐)

1)改数据库编码

  1. 左侧点你的数据库名

  2. 顶部:操作 / Operations

  3. 找到:整理(排序规则)

    • 选:utf8_general_ci(或 utf8mb4_unicode_ci)

  4. 下面勾选:将所有表的整理也修改(有就勾)

  5. 执行。

2)批量修改所有表编码

  1. 回到数据库首页,勾选全选所有表

  2. 下拉菜单选:操作 / 批量操作

  3. 字符集:utf8,排序:utf8_general_ci

  4. 执行。

这样会把库 + 表都改成 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_articles

  • zbp_categorys

  • zbp_comments

  • zbp_members

  • zbp_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 配套必须做的(不然还乱码)

  1. 模板文件全部 UTF-8 无 BOM用 Notepad++ 打开主题目录 THEMES/你的主题/ 下所有 .html

    • 菜单:编码 → 转为 UTF-8(无 BOM)

    • 保存、覆盖上传

  2. 内页模板必须有
    <meta charset="UTF-8">放在 <head> 最前面。
    .htaccess 加:
    AddDefaultCharset UTF-8

  3. 改完清 ZBlog 缓存后台 → 网站设置 → 清除缓存;浏览器强制刷新(Ctrl+F5)。

  4. 文章由 否玩代码 编辑 www.fouwan.com