c# asp.net 2.0 半角专全角,全角专半角

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

        }

 3、关于全角转半角的问题,在Unicode中,标点、数字、字母的半角编码最高位均为0,它们的全角编码与半角编码的第三位相差32h。
posted @ 2008-05-26 16:12  大牛博客  阅读(292)  评论(0编辑  收藏  举报