本例主要是判断一个字符是否是中文,
在unicode 字符串中,中文的范围是在4E00..9FFF,通过对字符的unicode编码进行判断来确定字符是否为中文。
Code /**//// <summary> /// 得到一个字符串的占位长度 /// </summary> /// <param name="input"></param> /// <returns></returns> protected int GetLength(string input) { int length = 0; if(input==null||input=="") return 0; for (int i = 0; i < input.Length; i++) { if (IsChineseLetter(input, i)) length += 2; else length ++; } return length; } /**//// <summary> /// 判断一个字符串中指定位置的字符是否是中文 /// </summary> /// <param name="input"></param> /// <param name="index"></param> /// <returns></returns> protected bool IsChineseLetter(string input, int index) { int code = 0; int chfrom = Convert.ToInt32("4e00", 16); int chend = Convert.ToInt32("9fff", 16); if (input != "") { code = Char.ConvertToUtf32(input, index); if (code >= chfrom && code <= chend) { return true; } else { return false; } } return false; }