半角字符和全角字符的编码有一定的规则,利用此规则相对应,可实现字符的互相转换。
半角空格为32,全角空格为12288;
其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248。
写两个方法,可实现全角转半角,以及半角转全角。
// 半角转全角(SBC case) public static string ToSBC(string input) { char[] array = input.ToCharArray(); for (int i = 0; i < array.Length; i++) { if (array[i] == 32) array[i] = (char)12288; else if (array[i] < 127) array[i] = (char)(array[i] + 65248); } return new string(array); } // 全角转半角(DBC case) public static string ToDBC(string input) { char[] array = input.ToCharArray(); for (int i = 0; i < array.Length; i++) { if (array[i] == 12288) array[i] = (char)32; else if (array[i] > 65280 && array[i] < 65375) array[i] = (char)(array[i] - 65248); } return new string(array); }