我已经迁移了我的数据库,现在缺少一些表情符号:
在转储 .sql 文件中,我可以看到表情符号,但在导入过程中,某些东西正在破坏一些表情符号,我使用此脚本进行导入:
有什么想法吗?
最佳答案
这是一个较旧的问题,但为 future 的读者提供答案。 UTF8 在其他平台上很简单且通用,但 MySQL 对 utf8 的支持还不成熟,使其变得不必要的复杂。在 MySQL 中,utf8 实际上是 utf8mb4
而不是 utf8
(!!)。在这种怪异和 WordPress 自己的 utf8 与 utf8mb4 支持之间,有几件事需要研究。
检查您的
wp-config.php
是否有define('DB_CHARSET', 'utf8mb4');
多个备份脚本在决定使用什么字符时使用它设置为导入后导出。在迁移/备份 SQL 脚本中执行文本搜索
SET NAMES utf8
。它将作为可执行注释,如/*!40101 SET NAMES utf8 */;
。无论哪种方式,请将其中的utf8
更改为utf8mb4
并重试迁移打开备份/迁移 SQL 脚本并检查
CREATE TABLE
中是否包含正确的CHARSET=utf8mb4
。- 最后,在真实的文本编辑器(如 notepad++ 或 VS Code)中打开 .SQL 脚本,并进行文本搜索以查看备份本身中是否存在表情符号。例如:如果您原始 WordPress 页面中的某处有“我们的平台很快 🚀”,请在 SQL 备份中搜索“我们的平台很快”,看看您是否有 ????或紧随其后的 .sql 文件中的 🚀。
除此之外,是时候检查一下您的 MySQL 设置了,请参阅 this question/answer
关于mysql - WordPress 表情符号在数据库迁移后消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614671/