lua urldecode URL编码

关于URL编码的介绍

https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%8F%B7%E7%BC%96%E7%A0%81

 

关于Lua中的模式的介绍

http://lua-users.org/wiki/PatternsTutorial

https://www.lua.org/manual/5.3/manual.html#6.4.1

capture 介绍 http://www.lua.org/pil/20.3.html

 

用lua实现url编码

function LuaUtils.EncodeURL(s)
    s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)

    # 空格变成+
    return string.gsub(s, " ", "+")
end

1.string.gsub(第一个参数是源字符串,第二个参数是匹配模式,第三个参数自定义函数对找到的符合模式的字串进行再处理)

2.匹配模式:"([^%w%.%- ])"————人话:不是字母数字-.空格 

%w 代表英文字母和数字 represents all alphanumeric characters.

%.  代表 . 这个符号

%- 代表 - 这个符号

最后还有一个空格

[] 表示里面是一组模式多个模式 

^ 在[]中表示代表否定列出来的一组模式

3.自定义函数:function(c) return string.format("%%%02X", string.byte(c)) end

对满足上述匹配的字符取其字节(utf8)码,转为16进制,并用两位表示

%%:表示%这个符号

%02X:表示以十六进制形式输出,不足两位,前面补0输出

 

你可能感兴趣的:(字符与编码)