--
@param str 源字符串
-- @param n 截取的字符数
function
substr(
str,
n)
if
"string" ~=
type(str) or
0 == n
then
return
end
local size =
string.len(str)
local len =
0
local key =
1
local count =
0
while key <= size
do
local strType =
string.byte(str, key)
if strType >=
0xFC
then
len = len +
6
key = key +
6
elseif strType >=
0xF8
then
len = len +
5
key = key +
5
elseif strType >=
0xF0
then
len = len +
4
key = key +
4
elseif strType >=
0xE0
then
len = len +
3
key = key +
3
elseif strType >=
0xC0
then
len = len +
2
key = key +
2
else
len = len +
1
key = key +
1
end
count = count +
1
if count == n
then
break
end
end
return
string.sub(str, len)
end