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获取脚本所在目录的正确方法
Apr 15 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
Python基于百度云文字识别API
Dec 13 Python
对pandas处理json数据的方法详解
Feb 08 Python
解决python tkinter界面卡死的问题
Jul 17 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
python 实现兔子生兔子示例
Nov 21 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
python xlsxwriter模块的使用
Dec 24 Python
python中的列表和元组区别分析
Dec 30 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 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中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
PHP中的use关键字概述
2014/07/23 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
jquery 选择器部分整理
2009/10/28 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
python修改字典内key对应值的方法
2015/07/11 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
物业管理应届生求职信
2013/10/28 职场文书
创业计划书撰写原则
2014/01/25 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
个人先进事迹材料
2014/12/29 职场文书
思想品德评语大全
2014/12/31 职场文书
谢师宴答谢词
2015/01/05 职场文书