Создайте объект Encoding
для кодировки windows-1251 и декодируйте байтовый массив:
byte[] data = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x53, 0x68, 0x61, 0x72, 0x6f, 0x6b, 0x2e
};
string text = Encoding.GetEncoding(1251).GetString(data);
Второй набор данных не декодируется в русские символы, но в это (включаяпробел в начале и разрыв строки (CR + LF), заканчивающийся в каждой из трех строк):
=CF=F0=E8=E2=E5=F2
.
Чтобы получить желаемую строку, вам сначала нужно будет декодировать данные в строку,затем извлеките шестнадцатеричные коды из строки, преобразуйте их в байты и декодируйте эти байты:
Encoding win = Encoding.GetEncoding(1251);
string text = win.GetString(
Regex.Matches(win.GetString(data), "=(..)")
.OfType<Match>()
.Select(m => Convert.ToByte(m.Groups[1].Value, 16))
.ToArray()
);