ruby - 检测编码

标签 ruby ruby-1.9

我从网络上获取了一些字符串数据,我怀疑它并不总是像它所说的那样。我不知道问题出在哪里,我也不再关心了。从这个项目的第一天起,我就一直在与 Ruby 字符串编码作斗争。我真的想要某种方式来表达:“这是一个字符串。它是什么?”,然后使用该数据将其转换为 UTF-8,这样它就不会爆炸 gsub() 2,000 行在我的应用程序的深处。我已经查看了 rchardet,但即使它现在应该适用于 1.9,它也会在给定任何多字节输入的情况下崩溃......这没有帮助。

最佳答案

您无法真正检测到编码。你只能假设它。

对于大多数西方语言应用程序,以下构造 将工作。传统的编码通常是“ISO-8859-1”。新的首选编码是 UTF-8。为什么不简单地尝试使用 UTF-8 对其进行编码并使用旧编码进行回退

def detect_encoding( str )
  begin
    str.encode("UTF-8")
    "UTF-8"
  rescue
    "ISO-8859-1"
  end
end

关于ruby - 检测编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3074521/

相关文章:

ruby - 如何通过 ruby​​/micel 邮件删除服务器上的特定邮件?

ruby - 如何在 ruby​​ 中读取带有奇怪引用的 CSV?

ruby - 如何获取类中包含的模块

ruby - 为什么安装ruby1.9.2后我的ruby版本在ubuntu上还是老版本?

Ruby:require 与 require_relative - 在 Ruby <1.9.2 和 >=1.9.2 中运行的最佳实践

ruby - Ruby 1.9 中的 ARGF.class 是什么?

ruby-on-rails - "Anonymous modules have no name to be referenced by"到底是什么意思?

ruby - Middleman feed.xml.builder 与 iTunes 标签相关的问题

ruby-on-rails - rails : Appending URL parameters & removing URL parameters

ruby-on-rails - 如何使用公共(public)事件 gem 作为通知系统?