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中返回字典键的值的values()方法使用
May 22 Python
Python简单获取自身外网IP的方法
Sep 18 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
Python实现动态循环输出文字功能
May 07 Python
浅谈Python中的继承
Jun 19 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
使用Django框架创建项目
Jun 10 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
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
PHP培训要多少钱
2017/06/06 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python实现统计代码行的方法分析
2017/07/12 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
python爬取内容存入Excel实例
2019/02/20 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
华为的Java面试题
2014/03/07 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
硕士生工作推荐信
2014/03/07 职场文书
团购业务员岗位职责
2014/03/15 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
年终奖发放方案
2014/06/02 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
汽车销售合同文本
2019/08/08 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python