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