It seems that you write a byte array byte[] but read it as a string. Some codes like 0x35 correspond to valid ASCII characters ('5'), some codes like 0x00 are not and thus represented as \x00 and so you have a strange looking string.
Let's try to parse the composed string back to original byte[].
First, let's get rid of \x.. format and have a valid string with a help of regular expressions:
using System.Text.RegularExpressions;
...
string source = @"\xc9;\xfd5\x80\x00\xa9Z\xc9\x0fb\xef\x7f\xd6V]";
string result = Regex.Replace(
source,
@"\\x[0-9A-Fa-f]{2}",
m => ((char)Convert.ToInt32(m.Value.Substring(2), 16)).ToString());
Second, let's get byte[] from the string, assuming that all characters are ASCII:
byte[] array = result
.Select(c => (byte)c)
.ToArray();
Let's have a look at the array:
Console.Write(string.Join(", ", array.Select(x => $"{x:x2}")));
Outcome:
c9, 3b, fd, 35, 80, 00, a9, 5a, c9, 0f, 62, ef, 7f, d6, 56, 5d
[c9, 3b, fd, 35, 80, 00, a9, 5a, c9, 0f, 62, ef, 7f, d6, 56, 5d](in decimal:[201, 59, 253, 53, 128, 0, 169, 90, 201, 15, 98, 239, 127, 214, 86, 93])?byte[]and read back using the KEYS command hence why it came back in a different (printable) format.