Ruby 不兼容的字符编码:Oga gem中的ASCII-8BIT和UTF-8
我正在使用一个名为XML/HTML的解析器 我正在尝试抓取此URL:并解析正文中的文本,如下所示: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
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完美。这很有效。如果你加上这个作为回答,我会接受的!