Skip to content

Instantly share code, notes, and snippets.

@sr229
Forked from liukun/url-encode.lua
Last active July 28, 2022 17:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sr229/5e6f3a5b03181704a871207c14706499 to your computer and use it in GitHub Desktop.
Save sr229/5e6f3a5b03181704a871207c14706499 to your computer and use it in GitHub Desktop.
char_to_hex = function(c)
return string.format("%%%02X", string.byte(c))
end
function urlencode(url)
if url == nil then
return
end
url = url:gsub("\n", "\r\n")
url = url:gsub("([^%w ])", char_to_hex)
url = url:gsub(" ", "+")
return url
end
hex_to_char = function(x)
return string.char(tonumber(x, 16))
end
urldecode = function(url)
if url == nil then
return
end
url = url:gsub("+", " ")
url = url:gsub("%%(%x%x)", hex_to_char)
return url
end
-- ref: https://gist.github.com/ignisdesign/4323051
-- ref: http://stackoverflow.com/questions/20282054/how-to-urldecode-a-request-uri-string-in-lua
-- to encode table as parameters, see https://github.com/stuartpb/tvtropes-lua/blob/master/urlencode.lua
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment