summaryrefslogtreecommitdiffstats
path: root/html.lua
diff options
context:
space:
mode:
Diffstat (limited to 'html.lua')
-rw-r--r--html.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/html.lua b/html.lua
index 5b1b444..0b51a54 100644
--- a/html.lua
+++ b/html.lua
@@ -44,6 +44,16 @@ function mymodule.html_escape (text )
return (string.gsub (str, '"', """ ))
end
+-- percent-encode reserved characters according to RFC3986 (except space to '+')
+function mymodule.url_encode ( text )
+ local str = text or ""
+ str = string.gsub (str, "\n", "\r\n")
+ str = string.gsub (str, "([^%w ])",
+ function (c) return string.format ("%%%02X", string.byte(c)) end)
+ str = string.gsub (str, " ", "+")
+ return str
+end
+
-- return a name,value pair as a string.
local nv_pair = function ( name, value)
if ( name == nil ) then