Rake test и error: сбой записи в журнале. "\ xE2" от ASCII-8BIT до UTF-8
Когда я запускаю rake test, каждый раз я получаю строку с ошибкой.
log writing failed. "\xE2" from ASCII-8BIT to UTF-8
Пожалуйста, руководство по этому вопросу. Как удалить эту ошибку.
Ответ 1
Вероятно, вы где-то в своем коде пытаетесь вывести строку, чья кодировка неверна или имеет некоторые странные символы, и кодировка не работает.
Правильный способ - найти строку, которая приведет к проблемам, и выяснить, почему она ошибочна. См. Кодировку и force_encoding в строке api (http://ruby-doc.org/core-2.2.0/String.html).
Если вы просто хотите иметь возможность распечатать эту строку в журнале и избежать ошибки, вы можете выполнить следующую процедуру с этой строкой.
str = 'here is some string with wrong encoding and funny characters e.g. "\xE2"'
# note if you do this in console, the str is encoded correctly
# Rails.logger.info(str) # this would result in the error line
# This will change the encoding and remove weird characters
str = str.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_')
Rails.logger.info(str) # this now works
Ответ 2
Используете ли вы postgresql? В вашей базе данных может использоваться SQL_ASCII. Вы можете проверить, запущена ли psql template1 -c 'show server_encoding' Удалить кластер базы данных и повторно инициализировать его с помощью initdb -E utf8 /path/to/database.
Ответ 3
В моем случае виновниками были некоторые странные кавычки, поэтому я просто заменил их безопасными символами, такими как