IT发展至今,字符编码版本众多,目前流行的GBK,Unicode,UTF-8编码与汉字的转换可用如下代码:

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);
        }

url:http://greatverve.cnblogs.com/archive/2012/03/02/csharp-gbk-unicode-utf-8.html

转载于:https://www.cnblogs.com/greatverve/archive/2012/03/02/csharp-gbk-unicode-utf-8.html

C#_汉字与GBK,Unicode,UTF-8编码之间的转换相关推荐

  1. GB2312和BIG5,Unicode/UTF8等编码之间的互相转化

    在工作中经常会用到GB2312和BIG5,Unicode/UTF8等编码之间的互相转化,也有很多程序员对这个问题不断的提问,现在我把我的 实现告诉大家. #include "Utf8.h&q ...

  2. 常用字符集(ASCII,ISO8859-1,GB2312,GBK,Unicode)和字符编码(UTF-8,UTF-16)

    转自:https://blog.csdn.net/wn084/article/details/80363792 参考:https://blog.csdn.net/halchan/article/det ...

  3. android utf-8 转 gbk编码,【字符编码系列】GBK,UTF-8,UTF-16之间的转换

    写在前面的话 本文属于 字符编码系列文章之一,更多请前往 字符编码系列. 大纲 不同编码转换的理论基础 UTF-16转UTF-8 UTF-16转GBK UTF-16和UTF-8之间的转换 UTF-16 ...

  4. C++中Ansi、Unicode、UTF8字符串之间的转换和写入

    转自: http://dark0729.blogbus.com/logs/51496111.html Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件 Un ...

  5. Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

    转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html 最近有人问我关于这个的问题,就此写一篇blog Ansi字符串我 ...

  6. 已知三个用不同数制表示的整数_数制的概念与常用的数制之间的转换。大学生必看!...

    数制的概念与常用的数制之间如何实现转化呢 一.首先我们来看一下,数制和与它相关的基数.位权是什么? 1. 数制就是表示数值大小的各种计数体制,简单来说就像是1,2,3···之类的用来计数的,只不过有很 ...

  7. [字符集]Unicode和UTF-8之间的转换详解

        最近在用VC++开发一个小工具,平时用惯了.NET,用起VC++最郁闷的就是字符串处理.当然最最让人难于琢磨的就是字符集,编码之间的转换.通过这几天的研究,终于明白了Unicode和UTF-8 ...

  8. Unicode和UTF-8之间的转换详解

    Unicode是一个字符集,而UTF-8是 Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1 个字节.U ...

  9. 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)

    参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...

最新文章

  1. 计算机游戏的产生,孩子容易沉迷计算机游戏,原来是因为过程中产生“心流”经验?...
  2. java和jvm_Java、JVM和操作系统之间的关系,写给新人,
  3. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 插件标记实现
  4. 浅析网站搭建时所遇到的这样或那样的问题
  5. Win7 Tensorflow 安装
  6. sed原理的一些感悟
  7. C++课程设计,12306模拟写起来就是这么粗暴
  8. Ant简单工程的构建
  9. 华硕路由器 linux上不了网,华硕ASUS路由器连不上网怎么办?
  10. centos7操作SSH/SSHD服务(查看/启动/重启/自启)
  11. 架构设计 | 分布式业务系统中,全局ID生成策略
  12. 微软 exFAT 技术将进入 Linux 内核
  13. 适应关键业务环境的加湿系统
  14. Linux开机报write same failed manually zeroing错误
  15. 有状态容器实践:k8s集成ceph分布式存储
  16. [故事]Making machines with brains
  17. 2011年度IT博客大赛 “博”乐大行动(已结束)
  18. Java整人程序-电脑关机
  19. autocad二次开发资料总结
  20. 浅析《人间失格》中的经典句段

热门文章

  1. 分水岭算法及相应处理
  2. 全球及中国工业金刚石微米粉行业十四五规划研究与发展战略分析报告2021年版
  3. java笔记15-日期类
  4. OpenStack之Keystone模块
  5. Shiro笔记(三)授权
  6. js弹出对话框的方法总结
  7. 编写高效的Android代码
  8. Introspection
  9. 产品问答 | 入职一家公司,你的选择依据是什么?
  10. 来场产品设计师的对决吧!MacBook、大疆OSMO等你拿