Lua:具有特殊字符的String的字符串长度不正确
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua:具有特殊字符的String的字符串长度不正确相关的知识,希望对你有一定的参考价值。
考虑以下两种情况:
local str1 = "abc"
str1:len
给出3
local str2 = "£££"
str2:len
给出6
有人可以解释一下吗?
LuaJit版本:5.1
答案
Lua中的字符串长度是其中的字节数,而不是字符数。
要处理多字节字符集,您需要一个像utf8
这样的库,它可以在Lua 5.3中使用。
另一答案
找到了解决方案。
本地函数parse_string(str)
local ret = ""
local flag = true
for i = 1, #str do
local c = str:sub(i,i)
local char = string.char(b2i.toint(c, "big", false, 1))
if char > "127" then
flag = not flag
if(flag) then
ret = ret .. char
end
else
ret = ret .. char
end
结束
return ret
结束
以上是关于Lua:具有特殊字符的String的字符串长度不正确的主要内容,如果未能解决你的问题,请参考以下文章