public string Convert1(string QJstr)
        {
            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];
                    }
                }
            }
            return new string(c);
        }请教该如何修改?谢谢

解决方案 »

  1.   


    public string Convert1(string QJstr)
    {
        char[] c = QJstr.ToCharArray();
        for (int i = 0; i < c.Length; i++)
        {
            if (c[i] == 12288)  c[i] = (char)32; // 全角空格为12288,半角空格为32
        }
        return new string(c);
    }//测试用例
    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("人  民" + "\n" + Convert1("人  民"));

      

  2.   

    ///全角空格为12288,半角空格为32
            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);
            }
      

  3.   

    public string Convert1(string QJstr)
    {
        char[] c = QJstr.ToCharArray();
        for (int i = 0; i < c.Length; i++)
        {
            byte[] b = System.Text.Encoding.Default.GetBytes(c, i, 1);
            if (b.Length == 2)
            {
                if (b[0] == 161 && b[1] == 161)
                {
                    b[0] = 32;
                    b[1] = 0;
                    c[i] = System.Text.Encoding.Default.GetChars(b)[0];
                }
            }
        }
        return new string(c);
      

  4.   


     /// <summary>
            ///  转半角的函数(SBC case)
            /// </summary>
            /// <param name="input">输入</param>
            /// <returns></returns>
            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);
            }