【发布时间】:2017-02-24 12:58:39
【问题描述】:
我正在使用一个名为 Oga 的 XML/HTML 解析器。
我正在尝试抓取此 URL:http://www.johnvanderlyn.com 并解析正文以获取文本,如下所示:
def get_page
body = Net::HTTP.get(URI.parse(@url))
document = Oga.parse_html(body)
end
document = get_page
words = document.css('body').text
当我收到此错误时:
/gems/oga-2.7/lib/oga/xml/node_set.rb:276:in block in text': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
这和这个bit of code here有关。
这可能是什么原因造成的,我该如何解决?有没有办法让我在本地修复它,或者我必须分叉 gem,修复该方法然后使用我的分叉?
想法?
【问题讨论】:
-
我刚刚执行了上面的代码,没有任何问题。您链接的那段代码与故障无关,即
body的问题被解释为错误的编码。在解析文档之前尝试body = body.force_encoding 'UTF-8'。 -
@mudasobwa 完美。这非常有效。如果您将其添加为答案,我会接受!
标签: ruby encoding utf-8 html-parsing