Python判断字符串中是否有中文字符

如题所述

首先,在Python中字符串的表示是 用unicode编码。所以在做编码转换时,通常要以unicode作为中间编码。
decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码
encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

判断一个字符串中是否含有中文字符:
好了,有了以上知识,就可以很容易的解决这个问题了。这是代码

1 #-*- coding:utf-8 -*-
2
3 import sys
4 reload(sys)
5 sys.setdefaultencoding('utf8')
6
7 def check_contain_chinese(check_str):
8 for ch in check_str.decode('utf-8'):
9 if u'\u4e00' <= ch <= u'\u9fff':
10 return True
11 return False
12
13 if __name__ == "__main__":
14 print check_contain_chinese('中国')
15 print check_contain_chinese('xxx')
16 print check_contain_chinese('xx中国')
17
18 结果:
19 True
20 False
21 True
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-06
def is_chinese(s):
  if s >= u'\u4e00' and s<=u'\u9fa5':
    return True
  else:
    return False


给你这个判断中文字符的函数,用到字符串上就可以了。

本回答被网友采纳
第2个回答  2017-08-21
1.输入一个字符串,随机生成S,不知道这个随机是什么意思,莫非要加密。 2.下面就简单了,把输入的字符串转换成列表,然后用in判断输入的X是不是在S列表中,在用列表方法remove移除就OK了 这个不是特别难吧!
第3个回答  2021-04-12
如果是GB码,可能是双字节GBK[0x81-0xfe][0x40-0xfe],也可能是四字节GB18030[0x81-0xfe][0x30-0x39][0x81-0xfe][0x30-0x39]。
汉字在Unicode中称作CJK 统一表意符号 (CJK Unified Ideographs),包括
reg=/^([\u+3400-\u+4dbf\u4e00-\u9fff\u+20000-\u3fffd\ue000-f8ff]{2,7})$/; //只能是中文,长度为2-7位
最后一项为PUA,参见百度百科【统一码】。
第4个回答  2018-01-17
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

相似回答