让Typecho支持emoji

emoji.png

记得上次写了一篇文章,里面无意中输入了几个emoji,兴高采烈的点击了发布文章。没想到,洋洋洒洒几百字,最后只落得只剩半篇😭,后来发现原来是emoji出的鬼!

无奈,凭着刚才的记忆,又简单的补了一下就睡觉去了。但是,一直是我的一个心结,毕竟GitHub👨🏼‍💻都支持了,咱这也得跟进啊!

查了一下,原来是字符集的事:Typecho用的是UTF-8的编码,在 MySQL 中,UTF-8只支持最多 3 个字节,而 emoji 是 4 个字节!

网上查了下,也是有解决办法的

修改数据库

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;

修改 Typecho 配置文件

$db->addServer(array (
    'host'      =>  localhost,
    'user'      =>  'xxx',
    'password'  =>  'xxx',
    'charset'   =>  'utf8mb4', //只修改这一行
    'port'      =>  xxx,
    'database'  =>  'xxx'
), Typecho_Db::READ | Typecho_Db::WRITE);

OK,再看看博客,已经加上表情啦😘😘😘。对了,如果设备不支持,就只显示一个框框了,那就没办法了。

🍏 🍎 🍐 🍊 🍌 🍉 🍇 🍓 🍈 🍒 🍑

常见的 emoji 网站:

标签: Typecho, emoji

除单独说明外,文章默认采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

添加新评论