Mysql Wordpress站点:随机字符编码错误
我有一个Wordpress网站,随机显示一个错误,如:Mysql Wordpress站点:随机字符编码错误,mysql,wordpress,encoding,character,utf8mb4,Mysql,Wordpress,Encoding,Character,Utf8mb4,我有一个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文件中。我怀疑有某种字符编
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(目前是UTF8),以及“Latin1 ISO8899西欧”和“utf_general_ci”分别作为编码和排序,但没有成功
我注意到,当我在一段时间后访问站点时,会发生错误
我能做什么?
谢谢 问题可能是编码不匹配。utf8最多可以存储3个字节的字符,utf8mb4最多可以存储4个字节的字符。我猜.sql文件中的数据包含utf8不支持的罕见符号。尝试重新导入.sql文件,但将编码设置为utf8mb4。不久前,我在Joomla遇到了同样的问题。问题可能是编码不匹配。utf8最多可以存储3个字节的字符,utf8mb4最多可以存储4个字节的字符。我猜.sql文件中的数据包含utf8不支持的罕见符号。尝试重新导入.sql文件,但将编码设置为utf8mb4。不久前,我在Joomla遇到了同样的问题。我最近写了一篇文章。如果您按照那里的步骤操作,一切都应该正常工作。以下是流程中每个步骤的直接链接:
- 我最近写了一篇文章。如果您按照那里的步骤操作,一切都应该正常工作。以下是流程中每个步骤的直接链接:
好啊如果这是一个选项,请尝试。。。谢谢没有选择。以下是DDL:CREATE DATABASE
XXXXXXX
CHARACTER SET'utf8'COLLATE'utf8\u general\u ci';(可能是我可以做一个'alter'语句来尝试UTf8mb4。或者可能是尝试将'option_value'列从Longtext更改为其他内容?谢谢。我会尝试将其更改为…字符集'UTf8mb4'对比'UTf8mb4_general_ci'。好的。如果这是一个选项,请尝试…谢谢!不是选项。这是DDL:CREATE DATABASEXXXXXXX
CHARACTER集合“utf8”与“utf8”比较;(可能是我可以做一个'alter'语句来尝试UTf8mb4。或者可能是尝试将'option_value'列从Longtext更改为其他内容?谢谢。我会尝试将其更改为…字符集'UTf8mb4'对比'UTf8mb4_general_ci'。Mathias,是的,我想到了MySQL服务器的升级,但后来我们发现其中一个Word Press插件(与跟踪用户有关)是唯一导致问题的。我们删除了它,问题就消失了。您的“答案”似乎仍然是满足我们需求的一个很好的选择。谢谢!Mathias,是的,我想到了MySQL服务器的升级,但后来我们发现其中一个Word Press插件(与跟踪用户有关)是唯一导致问题的。我们删除了它,问题就消失了。对于我们的需求,您的“答案”似乎仍然是一个非常好的选择。谢谢!
I encountered the same problem today.
After tried many times, I found out the reason and fix it at last.
For applications that store data using the default MySQL character set and collation (latin1, latin1_swedish_ci), so you need to specify the character set and collation to utf8/utf8_general_ci when your create your database or table.
e.g.:
$sql = "CREATE TABLE " . $table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
bookname varchar(128) NOT NULL,
author varchar(64) NOT NULL,
PRIMARY KEY (id),
KEY (bookname)
)CHARACTER SET utf8 COLLATE utf8_general_ci;";
Reference:
《mysql create table problem? SOLVED!!!!!!!!!!!》
http://forums.mysql.com/read.php?121,193883,193883
《10.1.5. Configuring the Character Set and Collation for Applications》
http://dev.mysql.com/doc/refman/5.0/en/charset-applications.html
Hoping this can help you.