module CGI::Util

def unescape(string,encoding=@@accept_charset)

# => "'Stop!' said Fred"
string = CGI.unescape("%27Stop%21%27+said+Fred")
URL-decode a string with encoding(optional).
def unescape(string,encoding=@@accept_charset)
  str=string.tr('+', ' ').b.gsub(/((?:%[0-9a-fA-F]{2})+)/) do |m|
    [m.delete('%')].pack('H*')
  end.force_encoding(encoding)
  str.valid_encoding? ? str : str.force_encoding(string.encoding)
end