C#_汉字与GBK,Unicode,UTF-8编码之间的转换
{
//汉字转为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编码之间的转换相关推荐
- GB2312和BIG5,Unicode/UTF8等编码之间的互相转化
在工作中经常会用到GB2312和BIG5,Unicode/UTF8等编码之间的互相转化,也有很多程序员对这个问题不断的提问,现在我把我的 实现告诉大家. #include "Utf8.h&q ...
- 常用字符集(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 ...
- android utf-8 转 gbk编码,【字符编码系列】GBK,UTF-8,UTF-16之间的转换
写在前面的话 本文属于 字符编码系列文章之一,更多请前往 字符编码系列. 大纲 不同编码转换的理论基础 UTF-16转UTF-8 UTF-16转GBK UTF-16和UTF-8之间的转换 UTF-16 ...
- C++中Ansi、Unicode、UTF8字符串之间的转换和写入
转自: http://dark0729.blogbus.com/logs/51496111.html Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件 Un ...
- Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html 最近有人问我关于这个的问题,就此写一篇blog Ansi字符串我 ...
- 已知三个用不同数制表示的整数_数制的概念与常用的数制之间的转换。大学生必看!...
数制的概念与常用的数制之间如何实现转化呢 一.首先我们来看一下,数制和与它相关的基数.位权是什么? 1. 数制就是表示数值大小的各种计数体制,简单来说就像是1,2,3···之类的用来计数的,只不过有很 ...
- [字符集]Unicode和UTF-8之间的转换详解
最近在用VC++开发一个小工具,平时用惯了.NET,用起VC++最郁闷的就是字符串处理.当然最最让人难于琢磨的就是字符集,编码之间的转换.通过这几天的研究,终于明白了Unicode和UTF-8 ...
- Unicode和UTF-8之间的转换详解
Unicode是一个字符集,而UTF-8是 Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1 个字节.U ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...
最新文章
- 计算机游戏的产生,孩子容易沉迷计算机游戏,原来是因为过程中产生“心流”经验?...
- java和jvm_Java、JVM和操作系统之间的关系,写给新人,
- 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 插件标记实现
- 浅析网站搭建时所遇到的这样或那样的问题
- Win7 Tensorflow 安装
- sed原理的一些感悟
- C++课程设计,12306模拟写起来就是这么粗暴
- Ant简单工程的构建
- 华硕路由器 linux上不了网,华硕ASUS路由器连不上网怎么办?
- centos7操作SSH/SSHD服务(查看/启动/重启/自启)
- 架构设计 | 分布式业务系统中,全局ID生成策略
- 微软 exFAT 技术将进入 Linux 内核
- 适应关键业务环境的加湿系统
- Linux开机报write same failed manually zeroing错误
- 有状态容器实践:k8s集成ceph分布式存储
- [故事]Making machines with brains
- 2011年度IT博客大赛 “博”乐大行动(已结束)
- Java整人程序-电脑关机
- autocad二次开发资料总结
- 浅析《人间失格》中的经典句段