当前位置: 首页 > 知识库问答 >
问题:

MySQL2::错误:不正确的字符串值

东门楚
2023-03-14

我有一个在生产模式下运行的rails应用程序,但是今天当一个用户试图保存记录时突然出现了这个错误。

Mysql2::Error: Incorrect string value
Parameters: {"utf8"=>"â<9c><93>" ... 

Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k 

Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k 
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec)

谢谢

共有1个答案

别兴国
2023-03-14

该问题是由您的mysql服务器端的charset引起的。您可以手动配置如下:

ALTER TABLE your_database_name.your_table CONVERT TO CHARACTER SET utf8

或者删除表并重新创建它,如下所示:

rake db:drop
rake db:create
rake db:migrate

参考资料:

更新

第一个命令只影响指定的表,如果要更改数据库中的所有表,可以执行如下操作

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;

参考资料:

https://stackoverflow.com/A/6115705/2034097

 类似资料:
  • 问题内容: 尝试将first_name,last_name保存到Django的auth_user模型时,出现奇怪的错误消息。 失败的例子 成功的例子 MySQL设置 表字符集和排序规则 表auth_user具有utf-8字符集,并带有utf8_general_ci排序规则。 UPDATE命令的结果 使用UPDATE命令将上述值更新到auth_user表时,它没有引发任何错误。 PostgreSQL

  • null 但问题还是出现了。你知道吗?

  • 我试图上传csv到我的mysql数据库使用jooq,但我得到以下错误。我在网上尝试了各种建议的解决方案,但都没能解决 我如何将csv上传到jooq 我确保文件在utf-8中,但是当有UTF-8字符记录时,无法保存在DB中并抛出上述错误。我确保使用 前端ajax: 我正在通过java rest从前端读取文件 并在传递给jooq之前在本地系统中递归写入文件 我将DB设置为接受utf-8,并进行了验证

  • sonarcube服务器6.1上的sonarqube Runers 2.4能够成功分析和生成报告,但服务器无法处理报告并抛出以下错误: 2016.11.12 13:41:05 跟踪 ce[AVhXlYUu6eaRvX5y_I2S][sql] 时间=265毫秒 |sql=INSERT INTO 问题(基、rule_id、严重性、manual_severity、消息、行、位置、差距、工作量、状态、标记

  • 我是C#的新手,我有一些Java方面的基础知识,但我不能让这段代码正常运行。 它只是一个基本的计算器,但当我运行程序时,VS2008给了我这个错误: 我做了几乎相同的程序,但在Java使用的是JSwing,它运行得非常好。 下面是C#的形式: 会有什么问题?有没有办法解决? PS:我也试过 但没有奏效。

  • 问题内容: 我收到以下错误 尝试运行此脚本时… 有任何想法吗? 干杯马丁 问题答案: 我猜您正在Windows上运行ROR。因此,请按照下列步骤。 确保您安装了mysqlcorrectlt。 将libmysql.dll(从mysql安装目录)复制到C:/ Ruby193 / bin文件夹中 现在删除旧的mysql安装的gems。 重新安装mysql gem。 这可能会解决您的问题。