Подтвердить что ты не робот

Байт [] в ASCII

Я получил содержимое текстового файла, возвращаемого двоичными значениями:

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

Как я могу преобразовать это в ASCII?

4b9b3361

Ответ 2

Вы можете использовать:

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

Но иногда вы получите странный номер вместо нужной вам строки. В этом случае ваша исходная строка может иметь шестнадцатеричный символ, когда вы ее видите. Если это так, вы можете попробовать следующее:

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

Или в крайнем случае:

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

Ответ 3

Encoding.ASCII.GetString(buf);

Ответ 4

В качестве альтернативы чтению данных из потока в массив байтов вы можете позволить инфраструктуре обрабатывать все и просто использовать StreamReader с кодировкой ASCII для чтения в строке. Таким образом, вам не нужно беспокоиться о получении соответствующего размера буфера или больших размеров данных.

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

Ответ 5

Метод Encoding.GetString(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
Строка, содержащая результаты декодирования указанной последовательности байтов.

Исключения

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 для большего обсуждения методов декодирования и соображения.