0

我有一个 Wordpress 网站,它随机显示如下错误:

WordPress database error: [Incorrect string value: '\xF0\x9F\x92\x97\xF0\x9F...' for    column 'option_value' at row 1] UPDATE `wp_options` SET `option_value` = 'a:95:{

这是一个占位符网站;使用 PhpMyAdmin 将数据从现有的 live 导出到 .sql 文件中。我怀疑存在某种字符编码问题?我已经通过任何“默认值”以及 UTF8 导出。在导入的数据库中,我分别尝试将字符编码和排序规则作为 UTF8(目前是)以及“Latin1 ISO8899 西欧”和“utf_general_ci”作为编码和排序规则,但没有运气。

我注意到,当我在一段时间后访问该站点时会发生错误。

我能做些什么?谢谢!

4

3 回答 3

2

我最近写了一篇关于如何从 MySQL 切换utf8utf8mb4. 如果您按照那里的步骤操作,一切都应该正常工作。以下是流程中每个单独步骤的直接链接:

于 2012-08-07T06:56:00.943 回答
1

问题可能是编码不匹配。utf8 最多可以存储 3 个字节的字符,utf8mb4 最多可以存储 4 个字节的字符。我猜您的 .sql 文件中的数据包含 utf8 不支持的稀有符号。尝试重新导入 .sql 文件,但将编码设置为 utf8mb4。前段时间我在 Joomla 中遇到了同样的问题。

于 2012-06-30T17:37:29.227 回答
0
我今天遇到了同样的问题。
经过多次尝试,我终于找到了原因并修复了它。
对于使用默认 MySQL 字符集和排序规则(latin1、latin1_swedish_ci)存储数据的应用程序,因此您需要在创建数据库或表时将字符集和排序规则指定为 utf8/utf8_general_ci。
例如:
        $sql = "创建表" 。$table_name 。" (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        书名 varchar(128) NOT NULL,
        作者 varchar(64) NOT NULL,
        主键(id),
        KEY(书名)
        )字符集 utf8 整理 utf8_general_ci;";

参考:
《mysql建表问题?解决了!!!!!!!!!!!”
http://forums.mysql.com/read.php?121,193883,193883
《10.1.5. 为应用程序配置字符集和排序规则》
http://dev.mysql.com/doc/refman/5.0/en/charset-applications.html

希望这可以帮助你。
于 2012-11-25T17:03:00.330 回答