「モジュール:UrlEncoding」の版間の差分

提供: ひつじ小屋別館2代目
移動先: 案内検索
 
(1版)
 
(相違点なし)

2014年3月30日 (日) 11:58時点における最新版

このモジュールについての説明文ページを モジュール:UrlEncoding/doc に作成できます

-- Way to encode URLs so they don't break things
local encode = function (str)
        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

local decode = function (str)
    str = string.gsub (str, "+", " ")
    str = string.gsub (str, "%%(%x%x)",
        function(h) return string.char(tonumber(h,16)) end)
    str = string.gsub (str, "\r\n", "\n")
end

return {
	_encode = encode,
	_decode = decode,

    encode = function (frame)
        str = frame.args[1]
        if (str ~= nil) then
        	str = encode(str)
        end
        return str
    end,

	decode = function (frame)
        str = frame.args[1]
        if (str ~= nil) then
        	str = decode(str)
        end
        return str
    end
}