本文最后更新于2019年03月16日,共272字。如有问题或建议,欢迎在文章底部留言参与讨论!

安装完typecho,发现并不能使用Emoji表情,评论里的Emoji表情,都会显示空白,看来不是typecho程序的问题,typecho还是比较健壮的,于是苗头指向了数据库。建数据库的时候使用utf-8,utf-8是不支持Emoji表情的。

要想数据库支持Emoji表情,就得使用utf8mb4编码来支持,于是我们需要修改已有数据库的编码格式,好消息是utf8mb4是utf-8的超集,完全兼容utf-8,修改后,不会影响现有数据。

修改数据表编码

使用phpAdmin或命令行连接MySQL数据库:

mysql -u root -p

输入密码,进入MySQL。

切换到typecho的数据库:

use <typecho数据库名>;

执行以下sql语句,修改typecho数据库中表的编码格式为utf8mb4:

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

修改config.inc.php配置

注意:替换路径为自己的config.inc.php路径

vi /home/wwwroot/www.nanlon.cn/config.inc.php

按下 i 键进入 vi 的编辑模式。

修改 charset 的值为 utf8mb4

/* 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  ...
  'charset' => 'utf8mb4',  # 修改编码为 utf8mb4
  ...
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

修改完成后,单击 Esc 键退出 insert 模式,输入以下命令保存退出。注意英文状态下输入!

:wq

这样就成功为typecho开启了Emoji支持。

输入一个表情试试:🍀🍀🍀

文章目录