c#数字字母的全角显示的问题,。各位兄弟姐妹,直接开始问题了:
是这样的,我的项目数据库中保存的一些数据要在电视上播出:文字显示出现了问题,默认下我们输入数字,字母,还有如(!,.-;:')等这些特殊字符的时候都是半角的,导致在电视上显示不对称,所以我要把这些字符保存到数据库的时候都是全角的(即和中文字占的宽度一样的)。但也不能苛刻的要求录入人员保证用全角模式输入。问:在程序里怎么写,用一个方法把整个字符串能全部转成全角?????我现在在程序里是这样写的:把那些特殊字符一个一个如下写出来,但这样效率太底了,也不全面,而且语句目前有60,70来个,而且有遗漏了还要增加
string = string.replace("A","A");
在此这种方法就不要再提了。
谢谢

解决方案 »

  1.   

    试试这个
            Dim sText As String = "123456"
            ' Returns "hello world".
            Dim sNewText As String = StrConv(sText, VbStrConv.Wide)
    这是VB的写法,我想C#应该大致相同
      

  2.   

    在c#中建议使用:StringConverter 类,看看CanConvertTo 和ConvertTo  等方法
      

  3.   

    /// <summary>
            /// 半角转全角
            /// </summary>
            /// <param name="BJstr"></param>
            /// <returns></returns>
            static public string GetQuanJiao(string BJstr)
            {
                #region
                char[] c = BJstr.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
                    if (b.Length == 2)
                    {
                        if (b[1] == 0)
                        {
                            b[0] = (byte)(b[0] - 32);
                            b[1] = 255;
                            c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
                        }
                    }
                }            string strNew = new string(c);
                return strNew;            #endregion
            }        /// <summary>
            /// 全角转半角
            /// </summary>
            /// <param name="QJstr"></param>
            /// <returns></returns>
            static public string GetBanJiao(string QJstr)
            {
                #region
                char[] c = QJstr.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
                    if (b.Length == 2)
                    {
                        if (b[1] == 255)
                        {
                            b[0] = (byte)(b[0] + 32);
                            b[1] = 0;
                            c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
                        }
                    }
                }
                string strNew = new string(c);
                return strNew;
                #endregion
            }
      

  4.   

    把microsoft.visualbasic引用进来,然后用下面的方法================================================
     explore_xu(嘿我说) ( ) 信誉:100    Blog  2006-11-17 9:04:13  得分: 0  
     
     
       
    试试这个
            Dim sText As String = "123456"
            ' Returns "hello world".
            Dim sNewText As String = StrConv(sText, VbStrConv.Wide)
    这是VB的写法,我想C#应该大致相同