问题:
FCL中的许多方法都返回一个byte[],因为他们都提供了一种字节流服务,但是一些应用程序需要通过这些字节流传递字符串。下面是其中的一些方法。
System.Diagnostics.EventLogEntry.Data
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.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.Security.Cryptography.CryptoStream.Read
System.Security.Cryptography.CryptoStream.BeginRead
在许多情况下,这个byte[]可能包含ASCII或Unicode编码的字符。你需要采用一种方式重组这个byte[]以获得原始字符串。
解决方案:
为了把ASCII值的字节数组转换成完整的字符串,使用ASCII Encoding类上的GetString方法: