39 lines
642 B
Lua
39 lines
642 B
Lua
local _M = {}
|
|
|
|
local char_to_hex = function(c)
|
|
return string.format("%%%02X", string.byte(c))
|
|
end
|
|
|
|
local hex_to_char = function(x)
|
|
return string.char(tonumber(x, 16))
|
|
end
|
|
|
|
function _M.encode(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
|
|
|
|
function _M.litepms_encode(url)
|
|
if url == nil then
|
|
return
|
|
end
|
|
url = url:gsub(" ", char_to_hex)
|
|
return url
|
|
end
|
|
|
|
_M.decode = function(url)
|
|
if url == nil then
|
|
return
|
|
end
|
|
url = url:gsub("+", " ")
|
|
url = url:gsub("%%(%x%x)", hex_to_char)
|
|
return url
|
|
end
|
|
|
|
return _M
|