// 判断字符是否英文半角字符或标点 // 32 空格 // 33-47 标点 // 48-57 0~9 // 58-64 标点 // 65-90 A~Z // 91-96 标点 // 97-122 a~z // 123-126 标点 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); } } /**/ /// 将字符串中的全角字符转换为半角 public static string ToBj( string s) { if (s == null || s.Trim() == string.Empty) { return s; } 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(); } }