/// <summary> ///判断字符是否英文半角字符或标点 //32 空格 //33-47 标点 //48-57 0~9 //58-64 标点 //65-90 A~Z //91-96 标点 //97-122 a~z //123-126 标点 /// </summary> /// <param name="c"></param> /// <returns></returns> public static bool IsBjChar(char c) { int i = (int)c; return i >= 32 && i <= 126; } /// 判断字符是否全角字符或标点 /// 全角字符 - 65248 = 半角字符 /// 全角空格例外 public static bool IsQjChar(char c) { if (c == 'u3000') { return true; } int i = (int)c - 65248; if (i < 32) { return false; } else { return IsBjChar((char)i); } } /// <summary> /// 将字符串中的全角字符转换为半角 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToBj(string s) { if (s == null || string.IsNullOrEmpty(s.Trim())) { return ""; } else { StringBuilder sb = new StringBuilder(s.Length); for (int i = 0; i < s.Length; i++) { if (s[i] == 'u3000') { sb.Append('u0020'); } else if (IsQjChar(s[i])) { sb.Append((char)((int)s[i] - 65248)); } else { sb.Append(s[i]); } } return sb.ToString(); } }