ruby-on-rails - rake 测试和错误 : log writing failed. "\xE2"从 ASCII-8BIT 到 UTF-8

标签 ruby-on-rails logging ruby-on-rails-3.2

当我跑 rake test ,我每次都收到错误行。

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

请对此进行指导。如何消除这个错误。

最佳答案

您可能在代码中的某处尝试输出编码错误或包含一些奇怪字符且编码不起作用的字符串。

正确的方法是找到导致问题的字符串并找出其编码错误的原因。请参阅字符串 api ( http://ruby-doc.org/core-2.2.0/String.html ) 中的 encoding 和 force_encoding。

如果您只是希望能够在日志中打印该行并避免错误,您可以使用该字符串执行以下过程。

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

关于ruby-on-rails - rake 测试和错误 : log writing failed. "\xE2"从 ASCII-8BIT 到 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821258/

相关文章:

ruby-on-rails-3.2 - rails 3.2.3 在 ubuntu 12.0.4 中使用 webrick 无法在 https 上工作

ruby-on-rails - 如何在 Ruby on Rails 中将 find_by_sql hstore 字符串转换为哈希值

ruby-on-rails - 了解 "require"和类命名约定之间的 Rails 关系

amazon-web-services - AWS缓冲区在流传输到Lambda之前先登录CloudWatch

java.util.logging.config

php - 如何向 Symfony/Monolog 日志输出添加附加信息(主机、URL 等)?

ruby-on-rails - Rails 命名空间错误?

ruby-on-rails - Bootstrap 模式中的 Rails client_side_validations

css - 如何将 stylesheet_link_tag 与 bootstrap-sprockets 一起使用?

ruby-on-rails - 上游在读取来自上游的响应 header 时使用 Nginx、Thin/Rails 超时