C#中字符串string与byte[]数组互转
2017-02-13 09:54
141 查看
//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();
相关文章推荐
- 将byte[]数组转换为图像输出到页面
- 15.1 ByteArrayInputStream(字节数组输入流)和ByteArrayOutputStream类(字节数组输出流)
- byte[]数组和int之间的转换
- java中InputStream转化为byte[]数组
- Java byte数组与十六进制字符串互转
- 结构体转换成对应的byte数组
- C++ DWORD 转byte char 数组、指针
- byte数组的两种简单赋值操作
- Java 记录java基本类型与Byte数组之间相互转换
- Java 图片与byte数组互相转换
- Android中根据byte数组生成文件并保存到手机
- Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string
- Java byte数组和int互转
- NSdata 与 NSString,Byte数组,UIImage 的相互转换
- Object-C 从字符串中取16进制数到byte数组
- java中byte数组与int类型的转换(两种方式)
- byte[]数组下标的最大值
- 一种取byte[]数组内存地址的方式
- iOS NSdata 与 NSString,Byte数组,UIImage 的相互转换
- java整数和byte数组之间的转换