天堂的狼

更好的生活,来自不懈的努力与拼搏,不要仅仅看中结果,拼搏的过程同样是精彩的!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

内容来自网络

从上面的ASCII码字母表中,可以看到英文字符(半角)的ASCII值处在32到126之间,在进行全角半角转换时,也就是转换这些字符。对于大多数英文字符,将其ASCII值加上65248就变成中文字符了,但是有两个例外:

  半角空格" ",其ASCII值为32,全角空格" ",其ASCII值为12288

  英文句号".",其ASCII值为46,全角句号"。",其ASCII值为12290

  知道这两点,就好转换了

 

///   <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  
                  }

posted on 2009-10-26 14:27  天堂的狼  阅读(447)  评论(0编辑  收藏  举报