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


本文摘自php中文网,作者黄舟,侵删。

这篇文章主要介绍了Python实现针对含中文字符串的截取功能,结合具体实例形式分析了Python针对utf-8及gb18030编码的中文字符串截取操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了Python实现针对含中文字符串的截取功能。分享给大家供大家参考,具体如下:

对于含多字节的字符串,进行截断的时候,要判断截断处是几字节字符,不能将多字节从中分割,避免截断后乱码

下面给出utf8和gb18030上的实现, 用任何一种都可以,可以先进行转码,用encode, decode;

方法1:对utf8:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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编码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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调用c# com dll组件的过程详解

Python获取csv文本指定数据方法

安装Python和pygame的实例教程

Python中abs是什么意思

Python如何安装批量下载

Python基本运算符号有哪些

Python中的类是什么?如何创建类?

request timeout是什么意思

如何使用 pylint 来规范 Python 代码风格(来自ibm)_Python

Python之dataframe实现excel合并单元格_Python

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...