c#判断字符串是否是中文问题
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;
}
这段代码为什么能实现判断是否为中文,求详细解释,可以加分,详细。。 --------------------编程问答-------------------- 你找个字符串试下 输出下byte数组中每个值看下 --------------------编程问答--------------------
你先了解一下UnicodeEncoding吧 --------------------编程问答-------------------- YES --------------------编程问答-------------------- --------------------编程问答--------------------
--------------------编程问答-------------------- +1 --------------------编程问答-------------------- 最靠谱的办法是判断词频
public static bool IsChinese(string str)
{
Regex re = new Regex("^[\\u4e00-\\u9fa5]+$", RegexOptions.None);
if (re.IsMatch(str))
{
return true;
}
else
{
return false;
}
}
比如“大丈夫”既可以是中文也可以是日文 --------------------编程问答-------------------- --------------------编程问答-------------------- 看一下编码的方式就明白了,ascii,utf-8,gb2312,汉字占几个字节...... --------------------编程问答-------------------- 字符串“是”中文?这怎么判断?
是包含中文字符吧?!那么写一个foreach(char c in str)然后找到第一个c的值在中文字范围就可以立刻返回true了。
补充:.NET技术 , C#