我正在抓取 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

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

最佳答案

我想出了解决我的问题的方法。结果证明是我抓取的 XML 文档的编码有问题。为了解决这个问题,我现在使编码选项显式:

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

在我刚刚拥有之前:
doc = Nokogiri::XML::Reader(open(url))

希望这可以帮助某人。

关于ruby - 如何删除无效的字节序列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12980843/

10-11 10:46