Как пропустить Encoding :: UndefinedConversionError: "\ xC3" из ASCII-8BIT в UTF-8 - PullRequest
0 голосов
/ 29 января 2020

Попытка запустить грабли, которая удаляет некоторые данные. Задача работает нормально, пока не попадет в какой-нибудь специальный символ или что-то еще и не прервет задачу rake с этим.

Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8

Есть ли способ пропустить какие-либо записи при попадании в эту? Или, если возможно, исправьте это, когда оно попадет. Мы не использовали или не принуждали utf8 к клиентам, использующим нашу систему, примерно через 2 года. Поэтому я думаю, что происходит, что некоторые старые записи не были вынуждены utf8.

task :decrypt => :environment do
    puts 'DECRYPTING USERS'
    User.all.no_timeout.each do |user|
      u = {}

      u[:decrypted_email] = user.email

      puts "decrypting #{user[:email]} => #{u[:decrypted_email]}"

      u[:decrypted_phone] = user.phone unless user[:phone].blank?

      u[:decrypted_secondary_email] = user.secondary_email unless user[:secondary_email].blank?

      u[:decrypted_zip_code] = user.zip_code unless user[:zip_code].blank?

      u[:decrypted_last_4_credit_card] = user.last_4_credit_card unless user[:last_4_credit_card].blank?

      u[:decrypted_first_name] = user.first_name unless user[:first_name].blank?

      u[:decrypted_last_name] = user.last_name unless user[:last_name].blank?

      unless user[:security_question_1].blank? || user[:security_question_1_response].blank?
        u[:decrypted_security_question_1] = user.security_question_1
        u[:decrypted_security_question_1_response] = user.security_question_1_response
      end

      unless user[:security_question_2].blank? || user[:security_question_2_response]
        u[:decrypted_security_question_2] = user.security_question_2
        u[:decrypted_security_question_2_response] = user.security_question_2_response
      end

      user.update_attributes(u)
    end

Полная ошибка:

.....
decrypting XHgwMmB7x4MDM=U2FsdGxQ0u+4KksUh/hXuFUHIM= => blah@msn.com
rake aborted!
Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8
/Users/j/development/blah/lib/tasks/encryption.rake:93:in `block (3 levels) in <top (required)>'
/Users/j/development/blah/lib/tasks/encryption.rake:64:in `block (2 levels) in <top (required)>'
Tasks: TOP => encryption:decrypt
(See full trace by running task with --trace)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...