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