C字节数组和字符串怎么相互转换
更新时间:2023-10-27转换原理
在C#语言中,字符串(string)和字节数组(byte[])都是常用的数据类型,但是他们的存储方式不同,字符串是以Unicode格式保存在内存中的,而字节数组是以二进制方式保存的。因此在实际的开发中,有时我们需要将字符串和字节数组相互转换,常见的应用场景有:将字符串加密、解密、压缩之后转换成字节数组后传输;将二进制数据解析后转换成字符串方便查看。对于字符串和字节数组的转换,C#语言提供了一些便捷的方法,下面将分别进行介绍。
将字符串转换成字节数组
在C#中,将字符串转换成字节数组主要使用系统自带的Encoding类,常用的有ASCII、UTF8、Unicode等编码方式,下面以UTF8编码方式为例进行介绍。
string str = "Hello World"; //定义一个字符串 byte[] bytes = Encoding.UTF8.GetBytes(str); //将字符串转换成字节数组
通过上述代码,我们可以将字符串"Hello World"按照UTF8编码方式转换成了字节数组,转换后的结果保存在bytes数组中。同时,也可以使用其他的编码方式进行转换,只需要将Encoding的参数更改为对应的编码方式即可。
将字节数组转换成字符串
同样地,在C#中将字节数组转换成字符串也是使用Encoding类,并且需要指定字节数组的编码方式,下面以UTF8编码方式为例进行介绍。
byte[] bytes = new byte[] { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 }; //定义一个字节数组 string str = Encoding.UTF8.GetString(bytes); //将字节数组转换成字符串
通过上述代码,我们可以将字节数组{ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 }按照UTF8编码方式转换成了字符串"Hello World",转换后的结果保存在str字符串中。同样地,也可以使用其他的编码方式进行转换,只需要将Encoding的参数更改为对应的编码方式即可。
总结
在C#中,将字符串转换成字节数组和将字节数组转换成字符串都是使用Encoding类,并且需要指定编码方式。由于不同的编码方式存储的方式不同,因此需要注意在相互转换过程中是否使用了相同的编码方式。在实际应用中,我们可以将字符串转换成字节数组进行加密、压缩等处理,也可以将字节数组转换成字符串进行查看和操作。