0

我正在尝试创建一段代码,该代码将从互联网上下载一个页面并对其进行一些操作。该页面以 iso-8859-1 编码。

我找不到处理这个文件的方法。我需要在希伯来语中搜索文件并将更改的文件返回给用户。

我尝试使用string.encode,但我仍然得到错误的编码。

打印响应编码时,我得到:"encoding":{}喜欢它的未定义,这是它返回的示例:

\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \ufffd\ufffd-\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \ufffd\ufffd\ufffd\ufffd       

应该是希伯来字母。

当我尝试使用时final.body.encode('iso-8859-8-i'),我得到了错误code converter not found (ASCII-8BIT to iso-8859-8-i)

4

1 回答 1

1

当您输入 Ruby 或 OS 错误分配编码的位置时,转换将不起作用。那是因为 Ruby 会从错误的假设开始,并在转换时尝试保持错误的字符。

但是,如果您从其他来源知道正确的编码是什么,您可以使用force_encoding方法告诉 Ruby 如何解释它已加载到String. 请注意,这会更改对象。

例如

contents = final.body
contents.force_encoding( 'ISO-8859-8' )
puts contents

此时(只要它有效),您现在可以进行转换(例如转换为 UTF-8),因为 Ruby 已被正确告知它正在处理哪些字符。

'ISO-8859-8-I'我在我的 Ruby 版本上找不到。我还不确定与您需要的东西有多接近(如果编码不可用'ISO-8859-8',一些谷歌搜索表明这对您来说可能没问题)。...-I

于 2013-08-25T09:26:18.237 回答