c#编码转换

来源:互联网 发布:微信群二维码采集软件 编辑:程序博客网 时间:2024/06/05 18:41
       /// <summary>        /// URL编码        /// </summary>        /// <param name="Source"></param>        /// <param name="Encod">是否UTF8</param>        /// <param name="toUpper">默认到大写</param>        /// <returns></returns>        public static string URLEncod(string Source, Encoding Encod, bool toUpper = true)        {            if (toUpper)            {                StringBuilder sb = new StringBuilder();                for (int i = 0; i < Source.Length; i++)                {                    string t = Source[i].ToString();                    string k = HttpUtility.UrlEncode(t, Encod);                    if (t == k) sb.Append(t);                    else sb.Append(k.ToUpper());                }                return sb.ToString();            }            else                return HttpUtility.UrlEncode(Source, Encod);                    }        /// <summary>        /// URL解码        /// </summary>        /// <param name="Source"></param>        /// <param name="Encod">是否UTF8</param>        /// <returns></returns>        public static string URLDecode(string Source, Encoding Encod)        {            return HttpUtility.UrlDecode(Source, Encod);        }

 

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 = new byte[len];                for (int i = 0; i < cd2.Length;i+=2 )                {                    string bi = cd2.Substring(i, 2);                    b[i/2] =(byte) Convert.ToInt32(bi, 16);                }                string o=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
原创粉丝点击