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