У меня в сокет поступают некоторые двоичные данные, отправленные сервером, сервер написан на C ++. он отправляет двоичные данные, такие как: 0x10, 0x20, 0x18, 0xAA и т. д.
В Python 2 я имел обыкновение получать данные и добавлять их в строку, но теперь в Python 3 я получил байтовый массив, как мне преобразовать его в строку?
декодирование ('utf-8') не работает, вот мой оригинальный код:
reply_string = "" while bytes_read < reply_length:
chunk = s.recv(4096)
reply_string += chunk.decode('utf-8')
s - сокет, ошибка, которую я получил:
UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xf7 в позиции 116: недопустимый начальный байт
Сервер написан на C ++, он не отправляет Unicode, он просто читает содержимое двоичного файла и отправляет его обратно клиенту, выше приведен код клиента.