教程
Typecho中emoji表情不显示
293

Typecho 默认不支持 Emoji 表情,由于编码的问题而造成,我们只需简单两步即可让 typecho 支持 emoji 表情评论,只要将默认的数据库编码 utf8 修改为 utf8mb4 即可。
01

更改过程

1.修改评论内容字段的编码

使用数据库管理工具,找到 typecho_comments 评论表的 text 字段,将该字段的编码由 utf8_general_ci 改为 utf8mb4_general_ci
02
03

2.修改数据库配置文件

打开网站根目录数据库配置文件 config.inc.php ,将 charset 的值由 utf8 改为 utf8mb4

$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => '',
  'user' => '',
  'password' => '',
  'charset' => 'utf8mb4',
  'port' => '',
  'database' => '',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

成功显示了,真不错。
04
然后发现在文章中带emoji表情会显示成?,毋容置疑,肯定也是编码问题,干脆直接把几个表的编码全改成utf8mb4得了。

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;

完工,又水了一篇文章。
????????????☺️??????????????????????????☹️?????????????????????????

end
  • 上一篇
  • 下一篇
  • 添加评论
    评论(4)
    叶开楗
    叶开楗

    我是直接在linux修改数据库格式

    写诗歌
    叶开楗
    写诗歌
    welcome to qiangzai blog