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.yml

RoR:
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

确保列、数据库和应用程序具有相同的排序规则/编码集

  • MySQL:
    http://dev.mysql.com/doc/refman/5.7/en/charset-column.html
  • ActiveRecord:
    ActiveRecord::Base.connection.collation
  • Rails
    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
    谢谢!我还用这些参数重新创建了我的数据库,它可以正常工作!格迪米纳斯,我很乐意帮忙