内容
上次 升级到 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 里,老系统不一定看得见),问题解决。
评论
路过。
添加新评论