4

我正在抓取 html 并遇到“无效的字节序列错误”。我在另一篇文章中遵循了一些建议,并插入了以下两行代码:

doc_scores.encode!('UTF-16', :undef => :replace, :invalid => :replace, :replace => "")
doc_scores.encode!('UTF-8')

这有助于显着减少错误,但是,我仍然在大约 10-20% 的时间内得到以下异常(换句话说,每 5 次 html 扫描中大约有 1 次):

Input is not proper UTF-8, indicate encoding !
Bytes: 0xEA 0x20 0x20 0x22

它总是相同的字节序列。任何想法我应该如何去删除这些?

4

1 回答 1

3

我想出了解决我的问题的方法。事实证明,我正在抓取的 XML 文档的编码是个问题。为了解决这个问题,我现在明确编码选项:

doc = Nokogiri::XML::Reader(open(url),nil,'ISO-8859-1')

在我刚刚拥有之前:

doc = Nokogiri::XML::Reader(open(url))

希望这可以帮助某人。

于 2012-10-19T22:41:21.230 回答