字节到ASCII

我收到了以二进制值返回的文本文件的内容:

Byte[] buf = new Byte[size]; stream = File.InputStream; stream.Read(buf, 0, size); 

我怎样才能将其转换为ASCII?

使用:

System.Text.Encoding.ASCII.GetString(buf);

您可以使用:

 System.Text.Encoding.ASCII.GetString(buf); 

但有时你会得到一个奇怪的数字,而不是你想要的string。 在这种情况下,当您看到它时,您的原始string可能会有一些hex字符。 如果是这样的话,你可能想试试这个:

 System.Text.Encoding.UTF8.GetString(buf); 

或作为最后的手段:

 System.Text.Encoding.Default.GetString(bytearray); 
 Encoding.ASCII.GetString(buf); 

作为从数据stream读取数据到字节数组的替代方法,您可以让框架处理所有事情,只需使用设置了ASCII编码的StreamReader读取string即可。 这样你就不用担心获得合适的缓冲区大小或更大的数据大小。

 using (var reader = new StreamReader(stream, Encoding.ASCII)) { string theString = reader.ReadToEnd(); // do something with theString } 

Encoding.GetString方法(Byte [])将字节转换为string。

在派生类中重写时,将指定字节数组中的所有字节解码为string。

命名空间 :System.Text
程序集 :mscorlib(在mscorlib.dll中)

句法

 public virtual string GetString(byte[] bytes) 

参数

 bytes Type: System.Byte[] The byte array containing the sequence of bytes to decode. 

返回值

types :System.String
包含解码指定字节序列的结果的string。

例外

 ArgumentException - The byte array contains invalid Unicode code points. ArgumentNullException - bytes is null. DecoderFallbackException - A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) or DecoderFallback is set to DecoderExceptionFallback. 

备注

如果要转换的数据仅在连续块中可用(例如从stream中读取的数据),或者数据量太大以至于需要将其分成较小的块,则应用程序应使用解码器或编码器分别通过派生类的GetDecoder方法或GetEncoder方法。

有关解码技术和注意事项的更多讨论,请参见Encoding.GetChars下的注释。