• 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("
    ", "");
                cd2 = cd2.Replace("
    ", "");
                cd2 = cd2.Replace("
    ", "");
                cd2 = cd2.Replace("	", "");
                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);
            }
    
        }
    }
  • 相关阅读:
    Android课程---Activity的跳转与传值(转自网上)
    Android课程---Activity中保存和恢复用户状态
    Android课程---Activity 的生命周期
    Android课程---Activity的创建
    初学JAVA随记——练习写代码(8种数据类型)
    资料——UTF-8
    资料——ASCII码
    初学JAVA随记——8bit(1byte)的取值范围是+127到—128
    初学JAVA随记——变量与常量
    进制转换
  • 原文地址:https://www.cnblogs.com/Mysterious/p/4837882.html
Copyright © 2020-2023  润新知