跳转到主要内容

关于网站丢失 emoji 表情的解决方法 📓

Tony 提交于 周五, 2019-03-08 - 01:08

上次 升级到Drupal 8 时顺便升级了数据库编码到 utf8mb4,但偶然发现(大概就是动过数据库备份/还原后)emoji 表情都变成了问号 ? 。

观察了一阵子,发现并不是所有的 emoji 都会丢失,在 Unicode 5.2 版本以下的 emoji 是不会丢失的,为此我还弄了一个页面来提醒自己哪个版本以下的emoji是可以使用的,在插入文章里会先看一下这个 emoji 的版本,为了方便复用还把网站常用的 emoji 保存到 Evernote 里,但终于也在一次 Evernote 升级时变成了 ❓ ……

解决方法,在 my.cnf 里加入以下设置:

 

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

重启 MySQL/MariaDB。

修复表的记录

mysqlcheck -u root -p --auto-repair --optimize --all-databases

再进行数据库备份/还原的操作,清除缓存,发现 emoji 终于没有变砖 🧱 了(这个砖头的 emoji 在 Unicode 11 里,不一定看得见),问题解决。

 

文章标签

添加新评论

此字段内容将保密,不会被其他人看见。

Filtered HTML

  • 网页和电子邮件地址自动转换为链接。
  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <drupal-entity data-*>
  • 自动断行和分段。