module RDoc::Encoding

def self.set_encoding string

def self.set_encoding string
  string =~ /\A(?:#!.*\n)?(.*\n)/
  first_line = $1
  name = case first_line
         when /^<\?xml[^?]*encoding=(["'])(.*?)\1/ then $2
         when /\b(?:en)?coding[=:]\s*([^\s;]+)/i   then $1
         else                                           return
         end
  string.sub! first_line, ''
  return unless Object.const_defined? :Encoding
  enc = Encoding.find name
  string.force_encoding enc if enc
end