不兼容的字符编码:Oga 中的 ASCII-8BIT 和 UTF-8 gem
incompatible character encodings: ASCII-8BIT and UTF-8 in Oga gem
我正在使用名为 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。
可能是什么原因造成的,我该如何解决?有没有办法让我在本地修复它,或者我必须 fork gem,修复那个方法然后使用我的 fork?
想法?
您链接的那段代码与故障无关,那是 body 的问题是用错误的编码解释的。尝试在解析文档之前添加 body = body.force_encoding 'UTF-8'
:
def get_page
body = Net::HTTP.get(URI.parse(@url)).force_encoding 'UTF-8'
document = Oga.parse_html(body)
end
我正在使用名为 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。
可能是什么原因造成的,我该如何解决?有没有办法让我在本地修复它,或者我必须 fork gem,修复那个方法然后使用我的 fork?
想法?
您链接的那段代码与故障无关,那是 body 的问题是用错误的编码解释的。尝试在解析文档之前添加 body = body.force_encoding 'UTF-8'
:
def get_page
body = Net::HTTP.get(URI.parse(@url)).force_encoding 'UTF-8'
document = Oga.parse_html(body)
end