所以我建造了一个刮刀并且拉了一些物体。问题是一些是外语,它有点绊倒mysql数据库。这是我得到的错误。知道我能用这个做什么吗?谢谢!
Mysql2 ::错误:字符串值不正确:'\ xC5 \ x8Dga,...'列 第1行的“说明”:INSERT INTO
sammiches
(country
,created_at
,description
,image
,name
,updated_at
)价值观 ('日本','2013-05-03 01:17:06','热狗面包塞满油炸 面条,经常淋上泡菜,如贝尼shōga,与 蛋黄酱','/ wiki /文件:Yakisoba_sandwich_by_kaex0r.jpg', 'Yakisoba-pan','2013-05-03
答案 0 :(得分:14)
如果您尝试插入的字符串具有无效的UTF-8字节序列,也可以触发此操作。例如,在ruby中,您可以使用
删除任何无效字符string_with_invalid_sequences.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '')
String#scrub可以在ruby 2.1中使用
string_with_invalid_sequences.scrub
答案 1 :(得分:9)
您的表可能设置为非Utf8 CHARACTER SET。你可以用这个sql来改变它:
ALTER TABLE `your_database_name`.`your_table` CONVERT TO CHARACTER SET utf8
答案 2 :(得分:5)
你可以在这里找到答案。我不知道如何报告重复。 Mysql2::Error: Incorrect string value Rails 3 UTF8
为方便起见,请允许我重申我的回答
我最近遇到过这个问题。它本质上是mysql的默认排序规则类型不是utf8_unicode_ci。
执行以下操作。如果必要,备份您的数据。 我不得不放弃数据库并重新创建它
rake db:drop
rake db:create
将mysql数据库排序规则更改为utf8_unicode_ci(phpMyAdmin可能会派上用场) 最后,恢复迁移。
rake db:migrate
享受。