数据库迁移后WordPress表情符号消失了

时间:2018-07-31 13:33:43

标签: mysql wordpress migration emoji

我已经迁移了数据库,现在缺少一些表情符号:

https://i.imgur.com/fqvO4LO.png

在转储.sql文件中,我可以看到表情符号,但是在导入过程中某些东西正在破坏某些表情符号,我已经使用此脚本进行了导入:

https://korobochkin.wordpress.com/2017/02/25/import-and-export-wordpress-database-with-utf8mb4-charset/

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是一个较旧的问题,但需要将来的读者来回答。 UTF8在其他平台上很简单且通用,但是MySQL对utf8的支持不成熟,从而使其变得不必要地复杂。在MySQL中,utf8实际上是utf8mb4,而不是utf8(!!)。在这种怪异和WordPress自己的utf8 vs utf8mb4支持之间,有几件事情值得研究。

  1. 检查您的wp-config.php是否define('DB_CHARSET', 'utf8mb4');,在确定要导入到后导出的字符集时,有几个备份脚本会使用它。

  2. 在迁移/备份SQL脚本中为SET NAMES utf8进行文本搜索。这将像/*!40101 SET NAMES utf8 */;这样的可执行注释。无论哪种方式,都将utf8更改为utf8mb4,然后重试迁移

  3. 打开备份/迁移SQL脚本,并检查其中的CREATE TABLE是否具有正确的CHARSET=utf8mb4

  4. 最后,在真正的文本编辑器(如notepad ++或VS Code)中打开.SQL脚本,并进行文本搜索以查看表情符号是否存在于备份本身中。例如:如果您在原始WordPress页面的某处有“我们的平台是快速的”,请在SQL备份中搜索“我们的平台是快速的”,看看是否有?或紧随其后的.sql文件中。

除此之外,还需要研究MySQL设置,请参见this question/answer