判断字符串是不是是中文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断字符串是不是是中文相关的知识,希望对你有一定的参考价值。

public bool CheckChinese(string str)

bool flag = false;
UnicodeEncoding a = new UnicodeEncoding();
byte[] b = a.GetBytes(str);
for(int i=0;i<b.Length;i++)

i++;
if (b[i] != 0)

flag = true;

else

flag = false;


return flag;

这段代码为什么能实现判断是否为中文,求详细解释,可以加分,详细。。

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

是以程序可以判断:

#include<stdio.h>

int main()

int i,k=1,j=0;

 unsigned char s[100];

 gets(s);

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

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

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

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

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

 system("pause");

参考技术A 任何字符在unicode编码中都占用两个字节。
而在一般编码方式中英文字符可以用一个字节表示,中文要用两个。
这样英文字符在unicode编码中多占用了一个没有用的字节,这个没用字节就用0代替。
如果unicode编码中字符的第一个字节是0那他就是英文字符。不是0他就可能是除了英文字符之外的很多种语言的文字,不仅仅是中文。本回答被提问者采纳

以上是关于判断字符串是不是是中文的主要内容,如果未能解决你的问题,请参考以下文章

快速判断UTF8字符串中是不是有中文

如何用C++判断一个字符串是不是为中文

mysql 判断字符串中是不是有汉字

js怎么判断字符串中是不是有中文

js判断是不是有中文字符的方法大全

java 判断字符是不是是非法字符