lua中如何utf8转unicode

我的网页汉字数据需要转换为手机汉字格式,是这两个编码吧??它们怎么转换,晕了,跟c完全不同啊。。... 我的网页汉字数据需要转换为手机汉字格式,是这两个编码吧??它们怎么转换,晕了,跟c完全不同啊。。 展开
 我来答
百度网友fe016f1
推荐于2016-03-27 · TA获得超过802个赞
知道小有建树答主
回答量:467
采纳率:77%
帮助的人:304万
展开全部

先搞明白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绑定

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式