python 提取中文字符串(utf-8)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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]

猜你喜欢

转载自blog.csdn.net/u011930705/article/details/88727096
今日推荐