1
我正在使用名爲Oga的XML/HTML分析器。不兼容的字符編碼:Oga寶石中的ASCII-8BIT和UTF-8
我試圖抓取該網址: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。
什麼可能導致這種情況,我該如何解決?有沒有一種方法可以讓我在本地修復它,還是我必須修補寶石,修復該方法,然後使用我的分叉?
想法?
我剛纔執行上面的代碼沒有任何問題。你鏈接的代碼與毛刺毫無關係,這就是'body'的問題被解釋爲錯誤的編碼。在解析文檔之前嘗試'body = body.force_encoding'UTF-8'。 – mudasobwa
@mudasobwa完美。這非常出色。如果您將其添加爲答案,我會接受它! – marcamillion