加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何删除无效的字节序列?

发布时间:2020-12-17 02:19:07 所属栏目:百科 来源:网络整理
导读:我正在抓取html并遇到“无效的字节序列错误”.我在另一篇文章中提到了一些建议并插入了以下两行代码: doc_scores.encode!('UTF-16',:undef = :replace,:invalid = :replace,:replace = "")doc_scores.encode!('UTF-8') 这有助于显着减少错误,但是,我仍然会
我正在抓取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))

希望这有助于某人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读