【发布时间】:2014-04-18 08:38:58
【问题描述】:
我正在对我的 Rails 日志文件进行一些分析。中途我收到此错误:ArgumentError: invalid byte sequence in UTF-8
这是我的(简化的)代码,这是一个 rake 任务:
namespace :app do
desc 'import the records'
task :import => [ :environment ] do
File.open(LOGFILE).each_line do |line| #reads chunks
do_stuff(line)
end
end
end
【问题讨论】:
-
您使用的是哪个 ruby 版本?
-
因为您已经在使用 ruby 2,所以升级到 2.1.0 应该不会有问题。 Ruby 2.1 的 String#scrub 正是这样做的:ruby-doc.org/core-2.1.0/String.html#method-i-scrub。使用 2.1.0 或 2.1.2+(不是 2.1.1)。 2.1.1 有Hash的bug
-
在我的系统上安装 2.1 + 时遇到了各种问题。最终使用了这个向后移植擦洗方法的 gem:gem 'string-scrub', '0.0.3' #this backports ruby 2.1.0 删除无效字节序列的方法
标签: ruby-on-rails logging utf-8