候最好转换一下。可以选择在存之前将全角转化为半角了再存进去,统计的时候就不会有问题了。
1半全角互换#region 半全角互换
2 /**//// <summary>
3 /// 转全角的函数(SBC case)
4 /// </summary>
5 /// <param name="input">任意字符串</param>
6 /// <returns>全角字符串</returns>
7 ///<remarks>
8 ///全角空格为12288,半角空格为32
9 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
10 ///</remarks>
11 public static string ToSBC(string input)
12 {
13 //半角转全角:
14 char[] c = input.ToCharArray();
15 for (int i = 0; i < c.Length; i++)
16 {
17 if (c[i] == 32)
18 {
19 c[i] = (char)12288;
20 continue;
21 }
22 if (c[i] < 127 && c[i] > 32)
23 {
24 c[i] = (char)(c[i] + 65248);
25 }
26 }
27 return new string(c);
28 }
29
30 /**//// <summary>
31 /// 转半角的函数(DBC case)
32 /// </summary>
33 /// <param name="input">任意字符串</param>
34 /// <returns>半角字符串</returns>
35 ///<remarks>
36 ///全角空格为12288,半角空格为32(此处不必转空格)
37 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
38 ///</remarks>
39 public static string ToDBC(string input)
40 {
41 char[] c = input.ToCharArray();
42 for (int i = 0; i < c.Length; i++)
43 {
44 if (c[i] == 12288)
45 {
46 c[i] = (char)32;
47 continue;
48 }
49 if (c[i] > 65280 && c[i] < 65375)
50 {
51 c[i] = (char)(c[i] - 65248);
52 }
53 }
54 return new string(c);
55 }
56#endregion
2 /**//// <summary>
3 /// 转全角的函数(SBC case)
4 /// </summary>
5 /// <param name="input">任意字符串</param>
6 /// <returns>全角字符串</returns>
7 ///<remarks>
8 ///全角空格为12288,半角空格为32
9 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
10 ///</remarks>
11 public static string ToSBC(string input)
12 {
13 //半角转全角:
14 char[] c = input.ToCharArray();
15 for (int i = 0; i < c.Length; i++)
16 {
17 if (c[i] == 32)
18 {
19 c[i] = (char)12288;
20 continue;
21 }
22 if (c[i] < 127 && c[i] > 32)
23 {
24 c[i] = (char)(c[i] + 65248);
25 }
26 }
27 return new string(c);
28 }
29
30 /**//// <summary>
31 /// 转半角的函数(DBC case)
32 /// </summary>
33 /// <param name="input">任意字符串</param>
34 /// <returns>半角字符串</returns>
35 ///<remarks>
36 ///全角空格为12288,半角空格为32(此处不必转空格)
37 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
38 ///</remarks>
39 public static string ToDBC(string input)
40 {
41 char[] c = input.ToCharArray();
42 for (int i = 0; i < c.Length; i++)
43 {
44 if (c[i] == 12288)
45 {
46 c[i] = (char)32;
47 continue;
48 }
49 if (c[i] > 65280 && c[i] < 65375)
50 {
51 c[i] = (char)(c[i] - 65248);
52 }
53 }
54 return new string(c);
55 }
56#endregion