Mysql2::错误:不正确的字符串值:'\xE2\x80\xA8\x09

标签 mysql ruby-on-rails utf-8

我有一个 Rails 应用程序。有时,当用户在文本字段中写入内容并执行查询以更新 MySQL 数据库中的该字段时,我会收到以下错误日志:

更新船 SET 描述 = 'Vive la experiencia única de navegar abordo de un clásico de madera de lujo como Mako。 Te emocionará.', updated_at = '2015-03-10 20:10:32' WHEREboats.id = 1

    E, [2015-03-10T20:10:32.223430 #20343] ERROR -- : Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09Te...' for column 'description' at row 1: UPDATE boats SET description = 'Vive la experiencia única de navegar abordo de un clásico de madera de lujo como Mako. 
        Te emocionará.', updated_at = '2015-03-10 20:10:32' WHERE boats.id = 1

注意:抱歉,我无法将上面的代码作为代码。必须有特殊字符。

我希望用户可以添加任何字符而不会出错。

我有一个开发和生产环境。该错误仅在生产中发生。

我看到这个帖子看起来和我的问题一样:Mysql2::Error: Incorrect string value

我运行这个查询 show variables like 'char%'; 来检查数据库字符配置和: 开发:

'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'utf8'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'utf8'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/local/Cellar/mysql/5.6.19/share/mysql/charsets/'

生产:

'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/share/mysql/charsets/'

所以,我执行了 ALTER DATABASE yanpyprod CHARACTER SET utf8 COLLATE utf8_general_ci; 将我的数据库字符集更新为 utf8。

但是,将字符集更改为utf8后,我仍然收到同样的错误。

最佳答案

如果您运行 ALTER TABLE your_database_name.your_table CONVERT TO CHARACTER SET utf8 而不是在上面的数据库中更新字符集的查询,它就会起作用。

解决方案是在最后的附件中。

关于Mysql2::错误:不正确的字符串值:'\xE2\x80\xA8\x09,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973453/

相关文章:

mysql - SQL 条件内连接

javascript - 在 Rails 中读取 cookie 值

javascript - JSON.stringify() 到 UTF-8

apache - 在 htaccess 重写规则中验证 utf-8

java - 使用 UTF8 的 DataInputStream 和 readLine()

php - 如何从两个表构建表,一个具有无用的唯一标识符(WordPress wp_usermeta 表)

Php Auto Resize image,图像自动调整大小,但不作为调整大小的图像保存在文件夹中

ruby-on-rails - 从另一个 gem 获取一个 gem 的 Assets

ruby-on-rails - 上传到 Amazon S3 并从 Rails 服务器调用 Amazon Cognito 身份

C# 和 Docker - 无法从容器化的 .NET Core 3.1 Web API 连接到容器化的 MySQL 服务器