function LuaHelps.GetCharSize(char)--获取单个字符长度
if not char then
return 0
elseif char > 240 then
return 4
elseif char > 225 then
return 3
elseif char > 192 then
return 2
else
return 1
end
end
function LuaHelps.GetUtf8Len(str)--获取中文字符长度
local len = 0
local currentIndex = 1
while currentIndex <= #str do
local char = string.byte(str,currentIndex)
currentIndex = currentIndex + LuaHelps.GetCharSize(char)
len = len + 1
end
return len
end
function LuaHelps.StrUtf8Sub(str, startChar, numChars)--截取中文字符串
local startIndex = 1
while startChar > 1 do
local char = string.byte(str,startIndex)
startIndex = startIndex + LuaHelps.GetCharSize(char)
startChar = startChar - 1
end
local currentIndex = startIndex
while numChars > 0 and currentIndex <= #str do
local char = string.byte(str,currentIndex)
currentIndex = currentIndex + LuaHelps.GetCharSize(char)
numChars = numChars - 1
end
return string.sub(str, startIndex, currentIndex-1)
end
Lua中的中文字符串(UTF-8)处理(获取长度、截取字符串)
最新推荐文章于 2024-08-16 07:43:32 发布