之前就有过一次,写文章的时候添加 emoji,提交后数据库错误🤪,然后那篇文章就没有用那个活泼又传神的 emoji

后来谷歌了一下,其实 Mysql 是支持 emoji 的,不过一般中文用的字符集都是 utf8,标准的 uft8 只支持 3 个字节,而一个 emoji 有4个字节,把数据库的字符集改为支持 4 个字节的 utf8mb4 字符集就行了,当然 Typecho 的设置也要相应的改变一下 Mysql 连接参数。

STEP 1. 更改数据库字符集

use typecho;
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;

STEP 2. 更改 Typecho 连接设置

nano /var/www/blog/config.inc.php

找到最后数据库连接部分的代码,更改'charset' => 'utf8''charset' => 'utf8mb4'

STEP 3. 重启服务(非必须?)

sudo service mysql restart
sudo service php7.2-fpm restart

enjoy! ❤️

标签: mysql, 博客

添加新评论