在C#中判断和转换全角半角的方法
1. 判断是否为全角半角
全角占用二个字节 半角占用一个字节 用string.length 和System.text.Encoding.Default.GetByteCount 其中string.length表示字符串的字符数,System.text.Encoding.Default.GetByteCount表示字符串的字节数。判断半角(是半角则true)如下:if (checkString.Length == Encoding.Default.GetByteCount(checkString)) { return true; } else { return false; }
全角(是全角则返回true)
如下:if (2 * checkString.Length == Encoding.Default.GetByteCount(checkString)) { return true; } else { return false; }
2.全角半角转换
#region 全角半角转换 ////// 转全角的函数(SBC case) /// /// 任意字符串 ///全角字符串 //////全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// public static string ToSBC(string input) { //半角转全角: char[] c=input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i]==32) { c[i]=(char)12288; continue; } if (c[i]<127) c[i]=(char)(c[i]+65248); } return new string(c); } ///转半角的函数(DBC case) /// 任意字符串 ///半角字符串 //////全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// public static string ToDBC(string input) { char[] c=input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i]==12288) { c[i]= (char)32; continue; } if (c[i]>65280 && c[i]<65375) c[i]=(char)(c[i]-65248); } return new string(c); } #endregion