为了支持 Emoji,博客数据库使用了utf8mb4
的编码,本来一直相安无事,没想到后来迁移主机的时候被坑的不惨。
原因是导出 SQL的时候,某些低版本的应用(说的就是 PHPMyAdmin)可能在导出的时候会不支持utf8mb4
,所以导出的 SQL 文件声明的数据库编码方式是 utf8
,再进行导入的时候,数据库自然就按照utf8
的编码方式导入,导致 Emoji 表情都变成了?
😂
解决起来非常简单啊:
打开 SQL 文件,搜索:
/*!40101 SET NAMES
然后找到:
/*!40101 SET NAMES utf8 */;
如果以上面 那样,那再导入的时候就是以utf8
作为编码了。所以我们要把这里的utf8
改成utf8mb4
,然后就搞定了。
当然,最终的编码还是根据你的实际情况看,但是仍然建议在导入之前先检查一遍编码方式,以免不必要的呵呵
发生。
这个编码之后也是可以改的吧?
我错了 (委屈脸)
你那里错了?@(滑稽)
emoji是啥 可以吃的吗
mysqldump -uroot -p 数据库>/root/db_backup.sql
\#(观察)
链接测试 https://hran.me/archives/database-encoding-notice.html