ActiveRecord :: StatementInvalid:Mysql :: Error:字符串值不正确:'\ xE2 \ x98 \ xBA。\ x0D \ x0A ...'

时间:2011-10-10 06:21:00

标签: mysql ruby-on-rails activerecord

我使用rails 2.3.11并且在我的prod机器上我得到了这个例外。在我的开发机器上工作得很好,Bascially Iam提交了一个包含大量内容的文本区域,我的数据库中的列“消息”是文本类型,因此通常不应该有任何麻烦。

ActiveRecord::StatementInvalid: Mysql::Error: Incorrect string value:
'\xE2\x98\xBA.\x0D\x0A...' for column 'message' at row 1: INSERT INTO `table_xyz

1 个答案:

答案 0 :(得分:0)

我已经看到这种情况发生(太多次),其中一个数据库/表正确配置为使用utf8,另一个使用不同的字符集/整理,如拉丁语。填充utf8数据库时,通过复制拉丁数据库中的数据来完成。当数据包含unicode字符(如☃)时,对utf8数据库的后续更新/条目将失败。可能是,即使没有数据复制,不正确的数据库字符集/校对也可能导致这种情况。它有时也可以帮助确保您的数据库yml包含encoding: utf8