C#中字符串string与byte[]数组互转

//String To Byte[]:
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);

//Byte[] To String:
string str = System.Text.Encoding.Default.GetString(byteArray);

其实,在System.Text.Encoding class中,还有很多其它有用的方法,像GetChars,从一个byte[]转成一个char[],等等,可以参考MSDN。

另外,还有其它编码方式的,如System.Text.UTF8Encoding class、System.Text.UnicodeEncoding class等,根据不同需要可选不同的class。

另外一种方法是如下:

名称说明
BitConverter.ToString()出现运行时错误时,发生此事件
BitConverter.ToString(Byte[])返回由字节数组的元素转换来的 String
BitConverter.ToString(Byte[], Int32)返回由字节数组中从指定数组位置开始的元素转换来的 String
BitConverter.ToString(Byte[], Int32, Int32)返回由字节数组中指定位置、指定数量的字节转换来的 String
BitConverter.ToString(Byte[])这个方法不行,得到的是byte数组的16进制字符串, 如”AH-0A-1A”

如果是未知编码方式呢?
比如用FileStream从一个文件中读取了流到byte[]中,这时候并不知道这个文件的编码方式是gb2312还是utf-8,如何才能正确的取到string值?

你可以试试这种解决方案:

StreamReader sr = new StreamReader(new MemoryStream(byteArray));
string str = sr.ReadToEnd();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值