lua中如何utf8转unicode
我的网页汉字数据需要转换为手机汉字格式,是这两个编码吧??它们怎么转换,晕了,跟c完全不同啊。。...
我的网页汉字数据需要转换为手机汉字格式,是这两个编码吧??它们怎么转换,晕了,跟c完全不同啊。。
展开
1个回答
展开全部
先搞明白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绑定
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询