C#C# 全角转半角

A 什么是全角和半角?
(1)全角–指一个字符占用五个规范字符地点。
汉字字符和确定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是永不全角字符的

,只是在作文字处理时才会选取全角字符。

(2)半角–指一字符占用一个规范的字符地点。
万般的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统里面,以上二种字符是用作大旨代码处

理的,所以用户输入指令和参数时相似都利用半角。

B 全角与半角各在什么样状态下拔取?
全角占多个字节,半角占一个字节。
半角全角首假如本着标点符号来说的,全角标点占多个字节,半角占一个字节,而不论是是半角如故全角,汉字都仍旧要占多少个

字节。
在编程序的源代码中不得不接纳半角标点(不包括字符串内部的数额)
在不匡助汉字等语言的统计机上只可以利用半角标点(其实这种情景根本就不设有半角全角的概念)

对此绝大多数字体来说,全角看起来比半角大,当然这不是本质区别了。

C 全角和半角的分别
全角就是字母和数字等与汉字占等宽地方的字。半角就是ASCII模式的字符,在未曾汉字输入法起做用的时候输入的假名数字和

字符都是半角的。

在汉字输入法出现的时候,输入的假名数字默认为半角,可是标点则是默认为全角,可以通过鼠标点击输入法工具条上的附和

按钮来改变。

D 关于“全角”和“半角”:
全角:是指中GB2312-80(《音信置换用汉字编码字符集·基本集》)中的各类符号。
半角:是指英文件ASCII码中的各个符号。

     /**//// <summary>
        /// 转全角的函数(SBC case)
        /// </summary>
        /// <param name="input">任意字符串</param>
        /// <returns>全角字符串</returns>
        ///<remarks>
        ///全角空格为12288,半角空格为32
        ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
        ///</remarks>        
        public 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);                
        }

        /**//// <summary>
        /// 转半角的函数(DBC case)
        /// </summary>
        /// <param name="input">任意字符串</param>
        /// <returns>半角字符串</returns>
        ///<remarks>
        ///全角空格为12288,半角空格为32
        ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
        ///</remarks>
        public 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);
        }

源:http://wlgwly.blog.163.com/blog/static/14088024120111921827840/

相关文章