本文最后更新于2018年12月27日; 如遇到问题,请留言及时通知站长; 欢迎加入 三生三世,一起讨论各种问题!

说明

好像现在好多主题都自带表情评论了,好处就是更容易表达你在写文章时或者发表评论时的心情,毕竟有些想法,语言上难以形容。

emoji表情

一般各种手机或者电脑等其他设备,都支持emoji表情,就是输入法里自带的那种表情。这种表情占四个字节,而数据库默认的utf-8,是三字节的。所以,我们只需要修改数据库的编码方式就可以使得typecho支持emoji表情,而不需主题单独引入表情模块。

数据库

使用phpmyadmin或者Adminer,进入你的数据库,执行如下命令,使得数据库支持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;

上述代码修改了几乎所有的数据表,使得支持utf8mb4编码。实际上,我们只需要运行前两行就行,即使得发布文章支持emoji以及评论支持emoji,其他真的没必要支持emoji

config.ini.php

编辑网站根目录下的config.ini.php,修改charset后面修改为utf8mb4即可。

/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'localhost',
  'user' => 'user',
  'password' => 'password',
  'charset' => 'utf8mb4',
  'port' => '3306',
  'database' => 'typechodb',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

演示

说句实话,emoji表情数量,比你主题所带的表情多了很多很多。
参考教程:https://bakumon.me/blog/p/typecho-love-emoji.html

简单几条命令让你的typecho支持emoji
简单几条命令让你的typecho支持emoji