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)处理(获取长度、截取字符串)
最新推荐文章于 2023-03-14 20:22:54 发布
博客提供了一篇参考博文的链接,链接为https://www.cnblogs.com/slysky/p/6098981.html ,但未提及该博文具体内容。
处理(获取长度、截取字符串)&spm=1001.2101.3001.5002&articleId=90678309&d=1&t=3&u=5096258f406045a18f9c0ea2c19e5e2e)
24

被折叠的 条评论
为什么被折叠?



