.net六种汉字代码转换(gbk_utf8_u…

来源:互联网 发布:淘宝架构分析 编辑:程序博客网 时间:2024/04/29 09:05
.net六种汉字代码转换(gbk_utf8_unicode)
private void button1_Click(object sender, EventArgs e)
       {
          //汉字转为Unicode编码:
           string hz= textBox1.Text.ToString();
           byte[]b=Encoding.Unicode.GetBytes(hz);
           string o ="";
          foreach(var x in b){
              o +=string.Format("{0:X2}",x) + " ";
           }
          textBox2.Text = o;
       }

private void button2_Click(object sender, EventArgs e)
       {
           //Unicode编码转为汉字:
           string cd= textBox2.Text.ToString();
           string cd2= cd.Replace(" ", "");
                cd2 = cd2.Replace("\r", "");
                cd2 = cd2.Replace("\n", "");
                cd2 = cd2.Replace("\r\n", "");
                cd2 = cd2.Replace("\t", "");
           if(cd2.Length % 4 != 0)
           {
             MessageBox.Show("Unicode编码为双字节,请删多或补少!确保是二的倍数。");
           }
           else
           {
              int len = cd2.Length /2;
              byte[] b = newbyte[len];
              for (int i = 0; i< cd2.Length;i+=2 )
              {
                 string bi = cd2.Substring(i, 2);
                 b[i/2] =(byte) Convert.ToInt32(bi, 16);
              }
              stringo=Encoding.Unicode.GetString(b);
              textBox1.Text = o;
           }
       }

       private void button5_Click(object sender,EventArgs e)
       {
          //汉字转成GBK十六进制码:
           string hz= textBox3.Text.ToString();
byte[] gbk = Encoding.GetEncoding("GBK").GetBytes(hz);
           string s1= ""; string s1d = "";
          foreach(byte b in gbk){
              //s1 += Convert.ToString(b,16)+" ";
              s1 += string.Format("{0:X2}",b) + " ";
              s1d += b + " ";
              toolTip1.SetToolTip(textBox4,s1d);
           }
          textBox4.Text = s1;
          toolTip1.SetToolTip(textBox4, s1d);
          //汉字转成Unicode十六进制码:
           byte[] uc= Encoding.Unicode.GetBytes(hz);
           string s2= ""; string s2d = "";
           foreach(byte b in uc)
           {
              //s2 += Convert.ToString(b,16) + " ";
              s2 += string.Format("{0:X2}",b) + " ";
              s2d += b + " ";
              toolTip1.SetToolTip(textBox5,s2d);
           }
          textBox5.Text = s2;
          toolTip1.SetToolTip(textBox5, s2d);
          //汉字转成UTF-8十六进制码:
           byte[]utf8 = Encoding.UTF8.GetBytes(hz);
           string s3= ""; string s3d = "";
           foreach(byte b in utf8)
           {
              //s3 += Convert.ToString(b,16) + " ";
              s3 += string.Format("{0:X2}",b) + " ";
              s3d += b + " ";
              toolTip1.SetToolTip(textBox6,s3d);
           }
          textBox6.Text = s3;
          toolTip1.SetToolTip(textBox6, s3d);
       }

       private void button6_Click(object sender,EventArgs e)
       {   //GBK十六进制码转成汉字:
           string cd= textBox4.Text.ToString();
           string[]b4 = cd.Split(' ');           
           byte[]bs=new byte[2];
           bs[0] =(byte)Convert.ToByte(b4[0], 16);
           bs[1] =(byte)Convert.ToByte(b4[1], 16);
          textBox3.Text =Encoding.GetEncoding("GBK").GetString(bs);
       }

       private void button7_Click(object sender,EventArgs e)
       {   //Unicode十六进制码转成汉字:
           string cd= textBox5.Text.ToString();
           string[]b5 = cd.Split(' ');
           byte[] bs= new byte[2];
           bs[0] =(byte)Convert.ToByte(b5[0], 16);
           bs[1] =(byte)Convert.ToByte(b5[1], 16);
          textBox3.Text =Encoding.GetEncoding("Unicode").GetString(bs);
       }

       private void button8_Click(object sender,EventArgs e)
       {   //UTF-8十六进制码转成汉字:
           string cd= textBox6.Text.ToString();
           string[]b6 = cd.Split(' ');
           byte[] bs= new byte[3];
           bs[0] =(byte)Convert.ToByte(b6[0], 16);
           bs[1] =(byte)Convert.ToByte(b6[1], 16);
           bs[2] =(byte)Convert.ToByte(b6[2], 16);
          textBox3.Text = Encoding.GetEncoding("UTF-8").GetString(bs);
       }
0 0