将Byte数组转化为String

数组

问题

FCL得很多方法的返回值都是包含字符的Byte数组而不是返回一个String,这样的方法包含在如下的类中:

· System.Net.Sockets.Socket.Receive

· System.Net.Sockets.Socket.ReceiveFrom

· System.Net.Sockets.Socket.BeginReceive

· System.Net.Sockets.Socket.BeginReceiveFrom

· System.Net.Sockets.NetworkStream.Read

· System.Net.Sockets.NetworkStream.BeginRead

· System.IO.BinaryReader.Read

· System.IO.BinaryReader.ReadBytes

· System.IO.FileStream.Read

· System.IO.FileStream.BeginRead

· System.IO.MemoryStream // Constructor

· System.IO.MemoryStream.Read

· System.IO.MemoryStream.BeginRead

· System.Security.Cryptography.CryptoStream.Read

· System.Security.Cryptography.CryptoStream.BeginRead

· System.Diagnostics.EventLogEntry.Data

由这些方法返回的Byte数组中包含的通常是以ASCII编码或是Unicode编码的字符,很多时候,我们可能需要将这样的Byte数组转换为一个String。

解决方案

将一个包含ASCII编码字符的Byte数组转化为一个完整的String,可以使用如下的方法:

using System;
using System.Text;

public static string FromASCIIByteArray(byte[] characters)
{
ASCIIEncoding encoding = new ASCIIEncoding( );
string constructedString = encoding.GetString(characters);
return (constructedString);
}

将一个包含Unicode编码字符的Byte数组转化为一个完整的String,可以使用如下的方法:

public static string FromUnicodeByteArray(byte[] characters)
{
UnicodeEncoding encoding = new UnicodeEncoding( );
string constructedString = encoding.GetString(characters);
return (constructedString);
}

讨论

ASCIIEncoding类的GetString方法可以将byte数组中的7-BitsASCII字符转换为一个String;任何大于127的值将被转化为两个字符。在System.Text命名空间中你可以找到ASCIIEncoding类,查找该类的GetString函数你还可以发现这个函数有多种重载方式以支持一些附加的参数。这个方法的重载版本还可以将一个Byte数组中的一部分字符转化为String。

将Byte数组转化为String的GetString方法可以在System.Text命名空间的UnicodeEncoding类中找到,该方法将包含16-bitsUnicode字符的Byte数组转化为String。同ASCIIEncoding类的GetString方法一样,该方法也包含一个将Byte数组中的特定部分转化为String的重载版本。

时间: 2024-11-03 12:42:34

将Byte数组转化为String的相关文章

怎么样把一个byte[]数组转化为string的2维数组呢?

问题描述 怎么样把一个byte[]数组转化为string的2维数组呢? 是先转为string,然后再转数组,最后转为2维数组?能有高手代码演示下吗? 解决方案 首先,String有一个构造函数String(byte[] b)可以用字节数组创建String数据. 其次,怎么转成二维数组呢?是想将这个字节数组拆分么?能说一下你的需求吗,为什么要转成二维数组呢. 解决方案二: 你可以吧byte拆分出来,然后在往String数组里面放.. 解决方案三: 你可以吧byte拆分出来,然后在往String数组

怀疑是string数组转化为string出错了

问题描述 importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.InputStreamReader;importjava.io.Reader;//统计数组中每个元素在content中出现的次数publicclassstringIndexof{publicintsIndexof(Stringstr1,Stringstr2){inttotal=0;for(Stringtmp=str1;tmp!=null&&am

求助byte数组怎样转换bigdecimal

问题描述 怎样把byte数组转换为bigdecimal类型的数据呢 解决方案 解决方案二:--你数组时什么编码的?解决方案三:publicstaticvoidmain(String[]args){bytea=123;BigDecimalb=newBigDecimal(a);System.out.print(b);}数组的话你自己一个一个弄吧解决方案四:有个不太好的方法因为BigDecimal构造函数没有直接用byte型转换的但有String和其他型的可以先把byte数组转换成String型再转换

『0015』 - Solidity Types - 动态字节数组(Dynamically-sized byte array)、固定大小字节数组(Fixed-size byte arrays)、string之间的转换关系

孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链.高可用架构工程师 微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 固定大小字节数组(Fixed-size byte arrays)之间的转换 固定大小字节我们可以通过bytes0 ~ bytes32来进行声明,固定大小字节数组的长度不可变,内容不可修改.接下来我们通过下面的代码看看固定大小字节之间的转换关系. pragma solidity ^0.4.4; contract C { b

深入 JAVA里面关于byte数组和String之间的转换问题

把byte转化成string,必须经过编码.  例如下面一个例子:  importjava.io.UnsupportedEncodingException; publicclass test{ publicstatic void main(String g[]) { Strings = "12345abcd"; byteb[] = s.getBytes(); Stringt = b.toString(); System.out.println(t); } } 输出字符串的结果和字符串s

silverlight中如何将BitmapImage转化为Stream或byte数组?

上一篇"base64编码在silverlight中的使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而WriteableBitmap又能从BitmapSource直接构造,so ... 问题解决了   先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64的byte[]数组,再然后您可以把byte[]变成Stream   关键代码: 1 2 3 WriteableBitma

string-c++中怎么将本地图片转化成java需要的byte数组

问题描述 c++中怎么将本地图片转化成java需要的byte数组 c++调用java写的webservice时,需要传入一个本地图片转化为byte数组的数据,求大神给讲一下. 这是java写的webservice接口方法. public String verifyFaceSingle(String deviceId,byte[] leftImage,byte[] rightImage); 现在需要在vs2010里面获取byte[] leftImage. Serializer->StartElem

从图像转换到byte[]数组的几种方法

// 性能最高,其数组和像素一一对应 public static void test1(Image img) { Bitmap bmp = new Bitmap(img); BitmapData bitmapData = bmp.LockBits(new Rectangle(new Point(0, 0), img.Size), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); byte[] BGRValues = new byte[bi

C# byte数组常用扩展浅析

C# byte数组常用扩展是我们编程中经常会碰到的一些实用性很强的操作,那么C# byte数组常用扩展都有哪些呢?下面将列出并用实例演示常用八种情况. C# byte数组常用扩展应用一:转换为十六进制字符串 public static string ToHex(this byte b) { return b.ToString("X2"); } public static string ToHex(this IEnumerable<byte> bytes) { var sb