python在执行代码过程是不知道这个字符是什么意思的、是否是中文,而
是把所有代码翻译成二进制也就是000111这种形式,机器可以看懂的语言。
也就是在计算机中所有的字符都是有数字来表示的。汉字也是有数字表示的,
Unicdoe4E00~9FFF表示中文,所以如果一个字符的utf-8编码在这个区间内,就
说明它是中文。
代码:
def is_Chinese(word): for ch in word: if '\u4e00' <= ch <= '\u9fff': return True return False
中文编码对应表
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 丌
#-*- 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