【问题标题】:Rework ruby 1.8 encoding conversion code to ruby 1.9将 ruby​​ 1.8 编码转换代码返工为 ruby​​ 1.9
【发布时间】:2012-02-26 12:49:03
【问题描述】:

如何将以下已弃用的 ruby​​ 1.8 代码转换为 ruby​​ 1.9 代码?

invalid_chars_stripper = Iconv.new('UTF-8//IGNORE', 'UTF-8')
invalid_chars_stripper.iconv(body + ' ')[0..-2]

谢谢。

【问题讨论】:

  • 目前在 1.9 中做了什么?你需要它做什么?
  • 它做了它在 ruby​​ 1.9 中需要做的事情:从字符串中剔除所有无效的 UTF-8 字符。但有弃用警告。
  • 我发现这很好用:stackoverflow.com/questions/5712096/…

标签: ruby encoding utf-8 ruby-1.9 ruby-1.8


【解决方案1】:

这应该可行:

bad_str = "po#{0xFF.chr}ta#{0xFAFAFA.chr}to"        #=> "po?ta?to"
clean_str = bad_str.encode("UTF-8", {:replace=>""}) #=> "potato"

【讨论】:

  • 对我不起作用:ruby-1.9.3-p0 :033 > bad_str = "pota\xA0to" => "pota\xA0to" ruby​​-1.9.3-p0 :034 > puts bad_str pota�to => nil ruby​​-1.9.3-p0 :035 > clean_str = bad_str.encode("UTF-8", {:replace=>""}) => "pota\xA0to"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2012-04-03
  • 2011-03-10
  • 2011-07-20
  • 2014-11-22
  • 1970-01-01
相关资源
最近更新 更多