Байт[] в ASCII
Я получил содержимое текстового файла, возвращенного в двоичных значениях:
Byte[] buf = new Byte[size];
stream = File.InputStream;
stream.Read(buf, 0, size);
Как преобразовать это в ASCII?
5 ответов
вы можете использовать:
System.Text.Encoding.ASCII.GetString(buf);
но иногда вы получите странное число вместо строки, которую хотите. В этом случае ваша исходная строка может иметь шестнадцатеричный символ, когда вы ее видите. Если это так, вы можете попробовать следующее:
System.Text.Encoding.UTF8.GetString(buf);
или в крайнем случае:
System.Text.Encoding.Default.GetString(bytearray);
в качестве альтернативы чтению данных из потока в массив байтов вы можете позволить фреймворку обрабатывать все и просто использовать StreamReader
настройка с кодировкой ASCII для чтения в строке. Таким образом, вам не нужно беспокоиться о получении соответствующего размера буфера или большие размеры данных.
using (var reader = new StreamReader(stream, Encoding.ASCII))
{
string theString = reader.ReadToEnd();
// do something with theString
}
кодировка.Метод GetString (Byte[]) преобразование байтов в строку.
при переопределении в производном классе декодирует все байты в указанный байтовый массив в строку.
пространство имен: система.Текст
сборка: mscorlib (в mscorlib.dll файлы)
синтаксис
public virtual string GetString(byte[] bytes)
параметры
bytes
Type: System.Byte[]
The byte array containing the sequence of bytes to decode.
вернуться Значение
тип: система.Строка
Строка, содержащая результаты декодирования указанной последовательности байтов.
исключения
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 метод, соответственно, производного класс.
см. Примечания под Кодирование.GetChars для большего обсуждения методов декодирования и рассмотрения.