    # File lib/rbot/core/utils/httputil.rb, line 32
        def body_charset(str=self.raw_body)
          ctype = self['content-type'] || 'text/html'
          return nil unless ctype =~ /^text/i || ctype =~ /x(ht)?ml/i

          charsets = ['latin1'] # should be in config

          if ctype.match(/charset=["']?([^\s"']+)["']?/i)
            charsets << $1
            debug "charset #{charsets.last} added from header"
          end

          case str
          when /<\?xml\s[^>]*encoding=['"]([^\s"'>]+)["'][^>]*\?>/i
            charsets << $1
            debug "xml charset #{charsets.last} added from xml pi"
          when /<(meta\s[^>]*http-equiv=["']?Content-Type["']?[^>]*)>/i
            meta = $1
            if meta =~ /charset=['"]?([^\s'";]+)['"]?/
              charsets << $1
              debug "html charset #{charsets.last} added from meta"
            end
          end
          return charsets.uniq
        end