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

原创粉丝点击