Mysql - Mysql2 ::错误:字符串值不正确:

时间:2013-05-03 01:38:50

标签: mysql

所以我建造了一个刮刀并且拉了一些物体。问题是一些是外语,它有点绊倒mysql数据库。这是我得到的错误。知道我能用这个做什么吗?谢谢!

  

Mysql2 ::错误:字符串值不正确:'\ xC5 \ x8Dga,...'列   第1行的“说明”:INSERT INTO sammichescountry,   created_atdescriptionimagenameupdated_at)价值观   ('日本','2013-05-03 01:17:06','热狗面包塞满油炸   面条,经常淋上泡菜,如贝尼shōga,与   蛋黄酱','/ wiki /文件:Yakisoba_sandwich_by_kaex0r.jpg',   'Yakisoba-pan','2013-05-03

3 个答案:

答案 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

享受。