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

标签 mysql wordpress migration emoji

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

/image/TDQnQ.png

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

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

有什么想法吗?

最佳答案

这是一个较旧的问题,但为 future 的读者提供答案。 UTF8 在其他平台上很简单且通用,但 MySQL 对 utf8 的支持还不成熟,使其变得不必要的复杂。在 MySQL 中,utf8 实际上是 utf8mb4 而不是 utf8 (!!)。在这种怪异和 WordPress 自己的 utf8 与 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

关于mysql - WordPress 表情符号在数据库迁移后消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614671/

相关文章:

php - Wordpress - Buddypress 插件

Wordpress 的 Javascript 上传按钮问题

configuration - 通过导出/导入移动Docker容器:丢失配置,如启动命令

mysql - 我可以从 .sql 创建初始 CodeIgniter 数据库迁移吗?

MYSQL:统计每个客户的访问

mysql - 进行聚合查询的不同方法

php - WordPress PSR-4 命名空间插件访问另一个命名空间插件

php - 如何使用 php 将带有合并单元格的 .csv 文件导出到 mysql?

php - Mac 上的 Apache、MySql 和 PHP

mysql - 将 mySql2 迁移到 postgreSQL : query cache type error when mysql2psql