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

Dyn*_*ySS 9 mysql

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

Mysql2 ::错误:不正确的字符串值: '\ XC5\x8Dga,......'在第1行的列'说明':INSERT INTO sammiches(country, created_at,description,image,name,updated_at)VALUES( '日本',"2013年5月3日01 :17:06','一个热狗面包塞满炒面,经常淋上泡菜,如贝尼shōga,蛋黄酱','/ wiki /文件:Yakisoba_sandwich_by_kaex0r.jpg','Yakisoba-pan','2013- 05-03

Mik*_*key 16

如果您尝试插入的字符串具有无效的UTF-8字节序列,也可以触发此操作.例如,在ruby中,您可以使用删除任何无效字符

string_with_invalid_sequences.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '')
Run Code Online (Sandbox Code Playgroud)

String#scrub可以在ruby 2.1之后使用

string_with_invalid_sequences.scrub
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么,但你的第一个建议帮助我,擦洗对我没用. (2认同)

小智 9

可能你的表被设置为非Utf8 CHARACTER SET.你可以用这个sql来改变这个:

ALTER TABLE `your_database_name`.`your_table` CONVERT TO CHARACTER SET utf8
Run Code Online (Sandbox Code Playgroud)

  • 我看到这个问题,我的桌子已经是UTF8了? (2认同)

anb*_*yar 5

你可以在这里找到答案.我不知道如何报告重复. Mysql2 ::错误:字符串值不正确Rails 3 UTF8

为方便起见,请允许我重申我的答案


我最近遇到过这个问题.它本质上是mysql的默认排序规则类型不是utf8_unicode_ci.

请执行下列操作.如果必要,备份您的数据.我不得不删除数据库并重新创建它

rake db:drop
rake db:create
Run Code Online (Sandbox Code Playgroud)

将mysql数据库排序规则更改为utf8_unicode_ci(phpMyAdmin可能会派上用场)最后,恢复迁移.

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

请享用.