Ruby 不兼容的字符编码:Oga gem中的ASCII-8BIT和UTF-8

Ruby 不兼容的字符编码:Oga gem中的ASCII-8BIT和UTF-8,ruby,encoding,utf-8,html-parsing,Ruby,Encoding,Utf 8,Html Parsing,我正在使用一个名为XML/HTML的解析器 我正在尝试抓取此URL:并解析正文中的文本,如下所示: 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_s

我正在使用一个名为XML/HTML的解析器

我正在尝试抓取此URL:并解析正文中的文本,如下所示:

 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:文本中的块:不兼容字符编码:ASCII-8BIT和UTF-8(编码::CompatibilityError)

这与此有关

这可能是什么原因造成的?我如何修复它?有没有一种方法可以让我在本地修复它,或者我必须先修复gem,修复该方法,然后使用我的fork


想法?

您链接的代码位与该故障无关,即身体问题被错误编码解释。在解析文档之前,请尝试添加
body=body.force\u编码“UTF-8”

def get_page
  body = Net::HTTP.get(URI.parse(@url)).force_encoding 'UTF-8'
  document = Oga.parse_html(body)
end

我只是毫无问题地执行了上面的代码。您链接的代码位与小故障无关,即
正文
的问题被解释为错误编码。在解析文档之前,请尝试使用
body=body.force\u编码“UTF-8”
。@mudasobwa完美。这很有效。如果你加上这个作为回答,我会接受的!