使Typecho 博客系统支持 Emoji 表情的修改方法

typecho 并不支持 emoji 表情,提交带有 emoji 表情的时候,会提示 Data query error, 百度搜索了一番,发现因为 typecho 安装后的数据库是 utf8, 并不是 utf8mb4,所以只需要修改下数据表的字符编码就行了。
注意:utf8mb4 编码只有在 PHP5.5 以后才支持。

1. 修改数据库储存编码

首先要登陆你的 PHPMyadmin 然后找到安装 typecho 的数据库,选择您的数据库,操作 -> 整理 -> 选择 utf8mb4_unicode_c。

 

 

2. 修改数据库表存储编码

直接运行以下 sql 语句,进行编码转换


alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

 

 

 

3. 修改数据库配置文件

网站根目录数据库配置文件 config.inc.php


$db->addServer(array (
'host' => localhost,
'user' => 'user',
'password' => 'password',
'charset' => 'utf8mb4', //修改这一行将uft8修改为utf8mb4,注意:只改这里就可以,其他的地方可能和你的不一样,因为数据库信息不一样。
'port' => 3306,
'database' => 'yourdatabase'
), Typecho_Db::READ | Typecho_Db::WRITE);