Mysql Rails-如何修复/转换不正确的字符串值?
我最近面临着这个问题:Mysql Rails-如何修复/转换不正确的字符串值?,mysql,ruby-on-rails,ruby,string,encoding,Mysql,Ruby On Rails,Ruby,String,Encoding,我最近面临着这个问题: Mysql2::Error: Incorrect string value: '\xCC\x81T LO...' for column 我在这里发现了很多类似的主题,但大多数都与MySQL相关。是否有一种通用方法(方法)可以自动从输入的字符串中删除“坏的”/不正确的字符,这样我就可以将它们保存到MySQL中 提前谢谢。试试这个。用下面的代码行编辑您的数据库.yml 编码:utf8 希望这会有所帮助。如果这是需要使用4字节的字符的问题 encoding: utf8mb4
Mysql2::Error: Incorrect string value: '\xCC\x81T LO...' for column
我在这里发现了很多类似的主题,但大多数都与MySQL相关。是否有一种通用方法(方法)可以自动从输入的字符串中删除“坏的”/不正确的字符,这样我就可以将它们保存到MySQL中
提前谢谢。试试这个。用下面的代码行编辑您的
数据库.yml
编码:utf8
希望这会有所帮助。如果这是需要使用4字节的字符的问题
encoding: utf8mb4
collation: utf8mb4_bin
在database.ymlRoR:
application\u controller.rb
def configure_charsets
response.headers["Content-Type"] = "text/html; charset=utf-8"
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end
确保列、数据库和应用程序具有相同的排序规则/编码集
http://dev.mysql.com/doc/refman/5.7/en/charset-column.html
ActiveRecord::Base.connection.collation
config.encoding设置应用程序范围的编码。默认为UTF-8。
还可以尝试在控制台中使用数据库中的
str.force_encoding(“UTF-8”)
encoding:utf8mb4
。yml听起来您在数据库表中的该列上仍然有一个非UTF-8排序规则。我认为石器时代已经结束了。我目前只在数据库中使用编码:utf8
。yml
。CC81在utf8(或utf8mb4)中使用了“组合急性口音”。我目前在数据库中使用编码:utf8
。yml
。好的,然后尝试此编码:utf8mb4排序规则:utf8mb4\u unicode\u ci
确保在编辑数据库后重新启动应用程序。yml
如果不起作用,请尝试此编码:utf8mb4排序规则:utf8mb4\u常规\u ci
谢谢!我还用这些参数重新创建了我的数据库,它可以正常工作!格迪米纳斯,我很乐意帮忙