python 判断是否有中文字符

Python013

python 判断是否有中文字符,第1张

根据GB2312-80标准,每个汉字的机内码由二个字节组成,每个字节的最高位均为1。

是以程序可以判断:

#include<stdio.h>

int main()

{int i,k=1,j=0

unsigned char s[100]

gets(s)

for(i=0s[i]i++)

if(s[i]>128){k=0j++}

if(j==i)printf("\"%s\"全部是由汉字组成\n",s)

else if(k)printf("\"%s\"中没有中文\n",s)

else printf("\"%s\"中有部分汉字\n",s)

system("pause")

}

首先,在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