欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中Byte[]和String之间转换的方法

程序员文章站 2023-08-29 21:47:16
本文给大家介绍如何在byte[]和string之间进行转换? 比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲。它是计算机物理内存保存的最基本单元。 字节(b):...

本文给大家介绍如何在byte[]和string之间进行转换?

比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲。它是计算机物理内存保存的最基本单元。

字节(b):8个比特,0—255的整数表示

编码:字符必须编码后才能被计算机处理。早期计算机使用7为ascii编码,为了处理汉字设计了中文简体gb2312和big5

字符串与字节数组之间的转换,事实上是现实世界的信息和数字世界信息之间的转换,势必涉及到某种编码方式,不同的编码方式将导致不同的转换结果。c#中常使用system.text.encoding来管理常用的编码。下面直接上代码:

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace bytetostring
{
class program
{
static void main(string[] args)
{
string str = "鞠哥真帅!";
//使用utf编码。。。
byte[] utf8 = strtobyte(str, encoding.utf8);
//估计c#当时设计时没有中文简体,这是后来中国搞的?
byte[] gb2312 = strtobyte(str,encoding.getencoding("gb2312"));
console.writeline("这是utf8(鞠哥真帅),长度是:{0}",utf8.length);
foreach (var item in utf8)
{
console.write(item);
}
console.writeline("\n\n这是gb2312(鞠哥真帅),长度是:{0}",gb2312.length);
foreach (var item in gb2312)
{
console.write(item);
}
//用utf8编码的字节数组转换为str
string utf8str = bytetostr(utf8,encoding.utf8);
string gb2312str = bytetostr(gb2312,encoding.getencoding("gb2312"));
console.writeline("\n\nutf8: {0}",utf8str);
console.writeline("gb2312: {0}",gb2312str);
console.readkey();
}
//c#通常使用system.text.encoding编码
//字符串转数组
static byte[] strtobyte(string str, encoding encoding)
{
return encoding.getbytes(str);
}
//数组转换字符串
static string bytetostr(byte[] bt,encoding encoding)
{
return encoding.getstring(bt);
}
}
}

以上所述是小编给大家介绍的c#中byte[]和string之间转换的方法,希望对大家有所帮助