字节[]到ASCII

时间:2011-07-02 03:06:01

标签: c# .net file-upload bitconverter

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

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

如何将其转换为ASCII?

5 个答案:

答案 0 :(得分:87)

答案 1 :(得分:9)

您可以使用:

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

但有时你会得到一个奇怪的数字,而不是你想要的字符串。在这种情况下,当您看到它时,您的原始字符串可能会有一些十六进制字符。如果是这种情况,您可以尝试这样做:

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

或作为最后的手段:

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

答案 2 :(得分:5)

Encoding.ASCII.GetString(buf);

答案 3 :(得分:4)

作为将数据从流读取到字节数组的替代方法,您可以让框架处理所有内容,只需使用带有ASCII编码的StreamReader设置来读取字符串。这样您就不必担心获得适当的缓冲区大小或更大的数据大小。

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

答案 4 :(得分:1)

Encoding.GetString Method (Byte[])将字节转换为字符串。

  

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

命名空间: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.

返回值

输入: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.

<强>说明

  

如果要转换的数据是   仅在顺序块中可用   (例如从流中读取的数据)或   如果数据量太大,那么   它需要分成更小的   块,应用程序应该使用   解码器或由编码器提供的编码器   GetDecoder方法或GetEncoder   方法,分别是派生的   类。

     

请参阅下面的备注   Encoding.GetChars进行更多讨论   解码技术和   考虑。