C# unicode GBK UTF-8和汉字互转
界面:
源码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace SomeConvert { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } 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 = textBox3.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); textBox4.Text = o; } } private void button3_Click(object sender, EventArgs e) { //汉字转成GBK十六进制码: string hz = textBox5.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 + " "; } textBox6.Text = s1; } private void button4_Click(object sender, EventArgs e) { //GBK十六进制码转成汉字: string cd = textBox7.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); textBox8.Text = Encoding.GetEncoding("GBK").GetString(bs); } private void button5_Click(object sender, EventArgs e) { string hz = textBox9.Text.ToString(); //汉字转成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 + " "; } textBox10.Text = s3; } private void button6_Click(object sender, EventArgs e) { //UTF-8十六进制码转成汉字: string cd = textBox11.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); textBox12.Text = Encoding.GetEncoding("UTF-8").GetString(bs); } } }
文章对您有帮助,开心可以打赏我,金额随意,欢迎来赏!
需要电子方面开发板/传感器/模块等硬件可以到我的淘宝店逛逛