日期:2014-05-18  浏览次数:20792 次

C#全角与半角相互转换操作
/// <summary>
            /// 转换全角
            /// 全角的空格是12288,半角是32
            /// 其它的字符半角(33-126),全角(65281-65374)的对应关系,相差65248
            /// </summary>
            /// <param name="input">要转换的半角</param>
            /// <returns>string</returns>
            /// <remarks></remarks>
            public string DBCToSBC(string input)
            {
                char[] value = input.ToCharArray();
                for (int i = 0; i < value.Length; i++)
                {
                    if (value[i] == 32)//半角的空格
                    {
                        value[i] = (char)12288;//全角空格 
                        continue;
                    }
                    if (value[i]<126)
                    {
                        value[i] = (char)(value[i] + 65248);
                    }
                }
                return new string(value);
            }



     
 /// <summary>
            /// 全角转半角
            /// </summary>
            /// <param name="input">要转换的全角</param>
            /// <returns></returns>
            /// <remarks></remarks>
            public string SBCToDBC(string input)
            {
                char[] value = input.ToCharArray();
                for (int i = 0; i <value.Length; i++)
                {
                    if (value[i]==12288)
                    {
                        value[i]=(char)32;
                        continue;
                    }

                    if (value[i] < 65374 && value[i] > 65281)
                    {
                        value[i] = (char)(65248-value[i]);
                    }
                }
                return new string(value);
            }