版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011930705/article/details/88727096
//传入中文字符串,开始位置,以及长度,主要解决头尾乱码问题
def subString(string,start,length):
if length >= len(string):
return string
result = ''
i = start
p = start
flag = True
rs = start
while True:
ch = ord(string[i])
#1111110x
if ch >= 252:
p = p + 6
if flag == True:
rs = p
flag = False
#111110xx
elif ch >= 248:
p = p + 5
if flag == True:
rs = p
flag = False
#11110xxx
elif ch >= 240:
p = p + 4
if flag == True:
rs = p
flag = False
#1110xxxx
elif ch >= 224:
p = p + 3
if flag == True:
rs = p
flag = False
#110xxxxx
elif ch >= 192:
p = p + 2
if flag == True:
rs = p
flag = False
else:
p = p + 1
if (p-start) >= length:
break;
else:
i = p
return string[rs:i]