--[[ UIF编码里面,字符的第一个字节范围是0x00-0x7F(0-127)或者0xC2-0xF4(194-244), 英文是单字节,所以都在这个范围内,中文是双字节,所以第一个在这个范围内,第二个在128-193内
[^\128-\129]是个模式,匹配128到193以外的字节,只会匹配的到字符的第一个字节,所以这个表达式就能计算出来字符总个数了
]]--
-- 获取字符串长度
function UIHelps.GetCharStrLen(str)
local bytes = {str:byte(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