首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python:字符中文判断及编码识别

Python:字符中文判断及编码识别

作者头像
Freedom123
发布2024-03-29 14:19:58
发布2024-03-29 14:19:58
8740
举报
文章被收录于专栏:DevOpsDevOps
简介

python在执行代码过程是不知道这个字符是什么意思的、是否是中文,而是把所有代码翻译成二进制也就是000111这种形式,机器可以看懂的语言。  也就是在计算机中所有的字符都是有数字来表示的。汉字也是有数字表示的,Unicdoe4E00~9FFF表示中文,所以如果一个字符的utf-8编码在这个区间内,就说明它是中文。

中文编码对应表

GBK

UTF16

UTF8

汉字

D2BB

4E00

E4 B8 80

B6A1

4E01

E4 B8 81

C6DF

4E03

E4 B8 83

CDF2

4E07

E4 B8 87

D5C9

4E08

E4 B8 88

C8FD

4E09

E4 B8 89

C9CF

4E0A

E4 B8 8A

CFC2

4E0B

E4 B8 8B

D8A2

4E0C

E4 B8 8C

实践

1. 判断utf-8 代码如下:

代码语言:javascript
复制
def is_Chinese(word):
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            return True
    return False

2. 测试用例:

代码语言:javascript
复制
#-*- coding:utf-8 -*-
 
import sys
reload(sys)
sys.setdefaultencoding('utf8')
 
def check_contain_chinese(check_str):
    for ch in check_str.decode('utf-8'):
        if u'\u4e00' <= ch <= u'\u9fff':
            return True
    return False
 
if __name__ == "__main__":
    print check_contain_chinese('中国')
    print check_contain_chinese('xxx')
    print check_contain_chinese('xx中国')

结果: True False True

3. 判断字符包含中文:

代码语言:javascript
复制
 def is_not_en_word(self, word:str):
     '''
     判断一个词是否是非英文词,只要包含一个中文,就认为是非英文词汇
     :param word:
     :return:
     '''
     count = 0
     for s in word.encode('utf-8').decode('utf-8'):
         if u'\u4e00' <= s <= u'\u9fff':
             count += 1
             break
     if count > 0:
         return True
     else:
         return False

 def is_en_mail(self, mail_text:str):
     '''
     判断一个词是否是非英文词,只要包含一个中文,就认为是非英文词汇
     :param word:
     :return:
     '''
     tmp_text = ''.join(mail_text.split())
     count = 0
     print('tmp_text:', tmp_text)
     for s in tmp_text.encode('utf-8').decode('utf-8'):
         if u'\u4e00' <= s <= u'\u9fff':
             count += 1
     if float(count/(tmp_text.__len__())) > 0.1:
         return False
     else:
         return True

小结

参考: https://blog.csdn.net/QFire/article/details/82753726 https://blog.csdn.net/lanSeFangZhou/article/details/124163110

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 中文编码对应表
  • 实践
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档