Nokogiri - 编码问题 - 无效的UTF8字符

时间:2012-08-09 19:06:19

标签: ruby nokogiri

有人可以看看这个。我认为拨打此电话时,UTF-8字符无效。

Nokogiri::HTML(open("http://www.next.co.uk/x502062s2"))

如果有办法解决这个问题?这是问题吗?我正在编写一个新的开源屏幕抓取器,用于产品信息捕获(当网站不提供Feed时),然后有人说我做了一些有点狡猾的事情: - )

1 个答案:

答案 0 :(得分:2)

在将任何内容传递给Nokogiri之前,您可以对页面内容进行编码,并使用Iconv忽略所有无效的UTF字符。

我这样使用它:

ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(open('http://example.com').read)

您还可以查看“Fixing invalid UTF-8 in Ruby, revisited。”