lua中如何utf8转unicode

我的网页汉字数据需要转换为手机汉字格式,是这两个编码吧??它们怎么转换,晕了,跟c完全不同啊。。

先搞明白utf-8和unicode是什么关系……utf-8是unicode的一种编码格式

如果说是utf-8转utf-32的话,lua user wiki上有个范例程序:

function Utf8to32(utf8str)
assert(type(utf8str) == "string")
local res, seq, val = {}, 0, nil
for i = 1, #utf8str do
local c = string.byte(utf8str, i)
if seq == 0 then
table.insert(res, val)
seq = c < 0x80 and 1 or c < 0xE0 and 2 or c < 0xF0 and 3 or
      c < 0xF8 and 4 or --c < 0xFC and 5 or c < 0xFE and 6 or
  error("invalid UTF-8 character sequence")
val = bit32.band(c, 2^(8-seq) - 1)
else
val = bit32.bor(bit32.lshift(val, 6), bit32.band(c, 0x3F))
end
seq = seq - 1
end
table.insert(res, val)
table.insert(res, 0)
return res
end

--注意上述代码返回的是一个table,可能需要自行concat成字符串

但如果是utf-8转其他编码(GB2312,GBK等),还是找第三方C库吧,ICU和iconv应该都有lua绑定

温馨提示:答案为网友推荐,仅供参考
相似回答