考虑以下两种情况:
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
结束