Im пытается преобразовать массив байтов в строку. Байт-массив включает преамбулу (если у используемого кодера был один из них), и вы должны указать кодировку по умолчанию, если в массиве байтов не сохраняется преамбула.C# Преобразование байтового массива в строку с использованием преамбулы или кодировки по умолчанию
Мой код выглядит следующим образом
public static string ArrayToStringUsingPreambleOrDefaultEncoder(byte[] bytes, Encoding defaultEncoder, out Encoding usedEncoder) {
using (var mem = new MemoryStream(bytes))
using (var reader = new StreamReader(mem, defaultEncoder, true)) {
string result = reader.ReadToEnd();
usedEncoder = reader.CurrentEncoding;
return result;
}
}
Но это не делает трюк, как я бы ожидать. Как сделать StreamReader использовать кодировку, указанную в преамбуле или по умолчанию, если преамбула не найдена. Действительно ли мне нужно вручную сравнить преамбулу всех известных кодеров с началом массива, чтобы найти правильный?
сломанной ссылке, где находится код, пожалуйста ?? –