Ruby 2:从二进制ASCII-8BIT数据中检测编码

时间:2015-05-11 08:34:36

标签: ruby encoding utf-8 character-encoding ascii-8bit

我必须从外部源加载一些数据。当我查看编码时,Ruby告诉我ASCII-8BIT二进制文件。但是,某些来源的编码为ISO-8859-1,其中一些来源位于UTF-8。当我尝试将ISO-8859-1编码的内容转换为UTF-8时,我收到错误消息。但是,当我做content.force_encoding('ISO-8859-1').encode('UTF-8')之类的事情时,一切正常。

但是,这并不是相反的。当我尝试将UTF-8数据编码为ISO时,最终会出现像这样的破碎字符。

  

那么,有没有办法检测"底层"编码   ASCII-8BIT数据,然后将其转换为UTF-8

1 个答案:

答案 0 :(得分:1)

我有一个快速的谷歌,发现了Brian Lopez的Charlock Holmes宝石。它看起来像你正在进行的检测过程。

https://github.com/brianmario/charlock_holmes