【问题标题】:How do I workaround invalid byte sequence in UTF-8 in ruby text file parsing?如何在 ruby​​ 文本文件解析中解决 UTF-8 中的无效字节序列?
【发布时间】: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


【解决方案1】:

最终选择了这个向后移植擦洗方法的 gem:gem 'string-scrub'

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    相关资源
    最近更新 更多