Подтвердить что ты не робот

Rake test и error: сбой записи в журнале. "\ xE2" от ASCII-8BIT до UTF-8

Когда я запускаю rake test, каждый раз я получаю строку с ошибкой.

log writing failed. "\xE2" from ASCII-8BIT to UTF-8  

Пожалуйста, руководство по этому вопросу. Как удалить эту ошибку.

4b9b3361

Ответ 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

В моем случае виновниками были некоторые странные кавычки, поэтому я просто заменил их безопасными символами, такими как

msg = error.message.gsub(/[""]/, "\"").gsub(/[‘’]/,"\'")