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中idle是什么意思

Python中应用的小案例分享

Python怎么下载库

Python ipo模型是指什么?

Python smtp发送邮件的详细介绍(附代码)

Python对json的解析详解

如何灵活运用Python字典

Python输出2到100之间的素数

Python爬虫 使用真实浏览器打开网页的两种方法总结

Python都用什么写代码

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




打赏

取消

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

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

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

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

评论

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