问题描述
publicboolCheckChinese(stringstr){boolflag=false;UnicodeEncodinga=newUnicodeEncoding();byte[]b=a.GetBytes(str);for(inti=0;i<b.Length;i++){i++;if(b[i]!=0){flag=true;}else{flag=false;}}returnflag;}这段代码为什么能实现判断是否为中文,求详细解释,可以加分,详细。。
解决方案
解决方案二:
你找个字符串试下输出下byte数组中每个值看下
解决方案三:
引用楼主jiajianzheng的回复:
publicboolCheckChinese(stringstr){boolflag=false;UnicodeEncodinga=newUnicodeEncoding();byte[]b=a.GetBytes(str);for(inti=……
你先了解一下UnicodeEncoding吧
解决方案四:
YES引用2楼chinajiyong的回复:
引用楼主jiajianzheng的回复:publicboolCheckChinese(stringstr){boolflag=false;UnicodeEncodinga=newUnicodeEncoding();byte[]b=a.GetBytes(str);for(inti=……你先了解一下UnicodeEncoding吧
解决方案五:
该回复于2012-03-19 09:42:40被版主删除
解决方案六:
publicstaticboolIsChinese(stringstr){Regexre=newRegex("^[\u4e00-\u9fa5]+$",RegexOptions.None);if(re.IsMatch(str)){returntrue;}else{returnfalse;}}
解决方案七:
+1引用5楼porschev的回复:
C#codepublicstaticboolIsChinese(stringstr){Regexre=newRegex("^[\u4e00-\u9fa5]+$",RegexOptions.None);if(re.IsMatch(str)){……
解决方案八:
最靠谱的办法是判断词频比如“大丈夫”既可以是中文也可以是日文
解决方案九:
该回复于2012-03-19 09:40:29被版主删除
解决方案十:
看一下编码的方式就明白了,ascii,utf-8,gb2312,汉字占几个字节......
解决方案十一:
字符串“是”中文?这怎么判断?是包含中文字符吧?!那么写一个foreach(charcinstr)然后找到第一个c的值在中文字范围就可以立刻返回true了。