url.lua 455 B

123456789101112131415161718
  1. local function encode (str)
  2. str = string.gsub (str, "([^0-9a-zA-Z !'()*._~-])", -- locale independent
  3. function (c) return string.format ("%%%02X", string.byte(c)) end)
  4. str = string.gsub (str, " ", "%%20")
  5. return str
  6. end
  7. local function decode (str)
  8. str = string.gsub (str, "%%20", " ")
  9. str = string.gsub (str, "%%(%x%x)", function(h) return string.char(tonumber(h,16)) end)
  10. return str
  11. end
  12. return {
  13. encode = encode,
  14. decode = decode
  15. }