Python实现针对含中文字符串的截取功能示例


Posted in Python onSeptember 22, 2017

本文实例讲述了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 实现tar文件压缩解压的实例详解
Aug 20 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
Python Django搭建网站流程图解
Jun 13 Python
Python流程控制语句的深入讲解
Jun 15 Python
Python 多线程之threading 模块的使用
Apr 14 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 #Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 #Python
Python实现字符串与数组相互转换功能示例
Sep 22 #Python
Python中用post、get方式提交数据的方法示例
Sep 22 #Python
利用python操作SQLite数据库及文件操作详解
Sep 22 #Python
Python正则表达式知识汇总
Sep 22 #Python
python3实现全角和半角字符转换的方法示例
Sep 21 #Python
You might like
Protoss魔法科技
2020/03/14 星际争霸
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
智能钱包:Ekster
2019/11/21 全球购物
大专应届毕业生求职信
2014/07/15 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
先进个人总结范文
2015/02/15 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
python编写函数注意事项总结
2021/03/29 Python
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
Python time库的时间时钟处理
2021/05/02 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
python基础之//、/与%的区别详解
2022/06/10 Python