class Nokogiri::HTML::Document::EncodingReader
def self.detect_encoding(chunk)
def self.detect_encoding(chunk) m = chunk.match(/\A(<\?xml[ \t\r\n]+[^>]*>)/) and return Nokogiri.XML(m[1]).encoding if Nokogiri.jruby? m = chunk.match(/(<meta\s)(.*)(charset\s*=\s*([\w-]+))(.*)/i) and return m[4] catch(:encoding_found) { Nokogiri::HTML::SAX::Parser.new(JumpSAXHandler.new(:encoding_found)).parse(chunk) nil } else handler = SAXHandler.new parser = Nokogiri::HTML::SAX::PushParser.new(handler) parser << chunk rescue Nokogiri::SyntaxError handler.encoding end end