方法一:
--- 获取字符宽度(中文算2个字符)
--
-- @param string str 原始字符串
-- @return number 字符宽度
function Util.Strlen(str)
local bytes = { string.byte(str, 1, #str) }
local length, begin = 0, false
for _, byte in ipairs(bytes) do
if byte < 128 or byte >= 192 then
begin = false
length = length + 1
elseif not begin then
begin = true
length = length + 1
end
end
return length
end
方法二:
local len = (utf8.len(str) + string.len(str))/2