Wordpress 创建了排序规则混乱,现在从 MySQL8 开始无法读取它?

问题描述 投票:0回答:1

在编码方面我有点菜鸟。我可以做一些基本的 PHP 和 HTML - 这就是它的作用。

我有一个 WordPress 网站 sind 2009,当时它在排序规则中造成了真正的混乱。我得到:

latin1_swedish_ci(我的网站上从来没有瑞典语这个词?一切都是德语) latin1_german2_ci utf8mb3_general_ci utf8mb3_unicode_ci 甚至一些 ascii_general_ci

现在一切都很好,直到 MySQL8 出现。

由于元音变音现在已损坏,我查看了数据库 - 发现它们也存储为“错误”。我猜我的 WordPress 将 UTF-8 发送到某个 latin1 表中。

但到目前为止一切都显示正常。

所以我尝试更新整个数据库排序规则 - 我认识到这不会影响单个表排序规则。

当我尝试更改单个表排序规则时(我的想法是将它们全部设置为 utf-8_mb4_general_ci - 它给我一个警告,字符可能会被更改 - 并且无法恢复。

所以我不太犹豫如何从这里开始。并且不确定。转换所有表中的排序规则可以解决问题吗?

我可以添加:

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

到我的 wpconfig

但由于我在网站上有超过 1000 个帖子,我很害怕事后必须手动完成这一切,因为我搞砸了。

数据库中有241张表,所以一张一张地做完可能需要一些时间。

我的目标是再次在我的 WP 前端和后端正确显示元音变音 äöüß 等。

感谢您的任何想法和帮助! :-)

mysql wordpress collation diacritics
1个回答
0
投票

我从 WordPress Codex 找到了这个“转换数据库字符集”。对于 2010 年之前撰写本文时的网站来说,似乎会发生这种情况。它似乎描述了您需要做什么来修复数据以获得正确的 utf8 支持。

一个关键部分脱颖而出:

每个网站在数据库字符集转换方面都不同 [...] 如果您现在正在阅读本文,那么您可能必须手动执行此操作,因为自从 WP 更改其默认行为以来,大多数为此目的编写的插件已经停止工作。

您可能还对其他讨论“请解释 WordPress 如何在低级别上使用 MySQL 字符集和排序规则”及其回复感兴趣。它提到 WP 使用一个系统来检测要使用的字符集。这可能就是发生故障的原因。

看起来 你并不是唯一一个在 MYSQL 8 中遇到这种情况的人

祝你好运!我在试图帮助其他人处理他们旧帖子中出现的奇怪字符编码时发现了这一点,不是专门针对 UTF8 支持的,但这似乎是同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.