国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現針對含中文字符串的截取功能示例

2020-02-16 10:17:25
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現針對含中文字符串的截取功能。分享給大家供大家參考,具體如下:

對于含多字節的字符串,進行截斷的時候,要判斷截斷處是幾字節字符,不能將多字節從中分割,避免截斷后亂碼

下面給出utf8和gb18030上的實現, 用任何一種都可以,可以先進行轉碼,用encode, decode;

方法1:對utf8:

def subString(string,length):  if length >= len(string):        return string  result = ''  i = 0  p = 0  while True:        ch = ord(string[i])        #1111110x        if ch >= 252:            p = p + 6        #111110xx        elif ch >= 248:            p = p + 5        #11110xxx        elif ch >= 240:            p = p + 4        #1110xxxx        elif ch >= 224:            p = p + 3        #110xxxxx        elif ch >= 192:            p = p + 2        else:            p = p + 1        if p >= length:            break;        else:            i = p  return string[0:i]

方法2:對gb18030編碼

def cut_string_off(string,s_len):    if len(string)==0 or s_len <=0:        return string    elif len(string)==1 or s_len >= len(string):        return string    elif s_len < len(string):        len_num=0        while len_num < s_len:            tmp_c=ord(string[len_num])            if tmp_c >0 and tmp_c <=0x7F:                len_num+=1                continue            tmp_nextc=ord(string[len_num+1])            if tmp_c >= 0x81 and tmp_c <=0xFE and tmp_nextc>=0x40 and tmp_nextc<=0xFE:                len_num+=2                continue            else:                len_num +=1;                continue            break        tmp = string[0:len_num]#    print utf2gbk(tmp)    return tmp

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python編碼操作技巧總結》、《Python字符串操作技巧匯總》、《Python數組操作技巧總結》、《Python函數使用技巧總結》、《Python入門與進階經典教程》及《Python數據結構與算法教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广宁县| 收藏| 贵德县| 呼伦贝尔市| 莱州市| 红桥区| 吉水县| 西华县| 天台县| 新竹县| 叶城县| 疏附县| 广饶县| 清苑县| 郯城县| 友谊县| 卢湾区| 萨迦县| 察隅县| 离岛区| 津市市| 邯郸县| 五河县| 宁远县| 珠海市| 疏附县| 田林县| 邵阳县| 江津市| 靖远县| 长兴县| 义乌市| 加查县| 鹿泉市| 博爱县| 刚察县| 马边| 陇南市| 岳普湖县| 武强县| 宜兰县|