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;
        }
这段代码为什么能实现判断是否为中文,求详细解释,可以加分,详细。。

解决方案 »

  1.   

    你找个字符串试下 输出下byte数组中每个值看下
      

  2.   


      public static bool IsChinese(string str)
            {            Regex re = new Regex("^[\\u4e00-\\u9fa5]+$", RegexOptions.None);            if (re.IsMatch(str))
                {
                    return true;
                }
                else
                {
                    return false;
                }        }
      

  3.   

    看一下编码的方式就明白了,ascii,utf-8,gb2312,汉字占几个字节......
      

  4.   

    字符串“是”中文?这怎么判断?是包含中文字符吧?!那么写一个foreach(char c in str)然后找到第一个c的值在中文字范围就可以立刻返回true了。