lua 转 utf8编码
来源:互联网 发布:青岛seo综合查询工具 编辑:程序博客网 时间:2024/04/28 01:28
-- convert numeric html entities to utf8-- converts from stdin to stdout-- example: € -> € local char = string.char local function tail(n, k) local u, r='' for i=1,k do n,r = math.floor(n/0x40), n%0x40 u = char(r+0x80) .. u end return u, nend local function to_utf8(a) local n, r, u = tonumber(a) if n<0x80 then -- 1 byte return char(n) elseif n<0x800 then -- 2 byte u, n = tail(n, 1) return char(n+0xc0) .. u elseif n<0x10000 then -- 3 byte u, n = tail(n, 2) return char(n+0xe0) .. u elseif n<0x200000 then -- 4 byte u, n = tail(n, 3) return char(n+0xf0) .. u elseif n<0x4000000 then -- 5 byte u, n = tail(n, 4) return char(n+0xf8) .. u else -- 6 byte u, n = tail(n, 5) return char(n+0xfc) .. u endend for line in io.lines() do out = string.gsub(line, '&#(%d+);', to_utf8) print(out)end