The byte array does not encode a valid text string in UTF-8, so when you "serialize", parts that cannot be recognized are replaced with a "replacement character". If you must convert byte arrays to strings, you should find an encoding that does not have restrictions such as ISO-8859-1.
In particular, byte 177 cannot appear on its own in real UTF-8: bytes in the range 128-191 are โcontinuation bytesโ that can only appear after a byte in the range 194-244 has been seen. You can learn more about UTF-8 here: https://en.wikipedia.org/wiki/UTF-8
source share