Mysql - Mysql2::Error: Incorrect string value:

后端 未结 3 1177
说谎
说谎 2021-02-03 12:12

So I built a scraper and am pulling in some objects. The issue is some are foreign languages and it is tripping the mysql db up a bit. This is the error I got. Any idea what I c

相关标签:
3条回答
  • 2021-02-03 12:50

    Probably your table is set to a non Utf8 CHARACTER SET. You can change this with this sql:

    ALTER TABLE `your_database_name`.`your_table` CONVERT TO CHARACTER SET utf8
    
    0 讨论(0)
  • 2021-02-03 13:08

    You can find the answer here. I am not sure how to report duplicate. Mysql2::Error: Incorrect string value Rails 3 UTF8

    For your convenience, let me reiterate my answer


    I had encountered this issue recently. It's essentially mysql default collation type is not utf8_unicode_ci.

    Do the following. Backup your data if you have to. I had to drop the database and recreate it

    rake db:drop
    rake db:create
    

    Change mysql database collation to utf8_unicode_ci ( phpMyAdmin might come in handy here) Finally, restore your migration.

    rake db:migrate
    

    Enjoy.

    0 讨论(0)
  • 2021-02-03 13:09

    This can also be triggered if the string you're trying to insert has invalid UTF-8 byte sequences. For example, in ruby you can remove any invalid characters using

    string_with_invalid_sequences.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '')
    

    String#scrub can be used in ruby 2.1 onwards

    string_with_invalid_sequences.scrub
    
    0 讨论(0)
提交回复
热议问题