判断字符串是不是是中文
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他就可能是除了英文字符之外的很多种语言的文字,不仅仅是中文。本回答被提问者采纳
以上是关于判断字符串是不是是中文的主要内容,如果未能解决你的问题,请参考以下文章