global

def unescape(str, escaped = /%[a-fA-F\d]{2}/)

def unescape(str, escaped = /%[a-fA-F\d]{2}/)
  # TODO: Are we actually sure that ASCII == UTF-8?
  # YK: My initial experiments say yes, but let's be sure please
  enc = str.encoding
  enc = Encoding::UTF_8 if enc == Encoding::US_ASCII
  str.gsub(escaped) { |match| [match[1, 2].hex].pack('C') }.force_encoding(enc)
end