все Python 3Байтовые последовательностифункция
bytearray.decode
bytearray — кодирование
Декодирует в строку (str) по кодировке (по умолчанию UTF-8).
Синтаксис
ba.decode(...)
Чаще всего UnicodeDecodeError тут вызван не неверной кодировкой, а границей куска: режете поток по произвольному числу байт — и многобайтовый символ рвётся пополам на совершенно валидных данных. Глушить это через errors='ignore' значит молча терять символы; лучше дочитать недостающие байты или взять инкрементальный декодер из codecs.
Примеры
print(bytearray(b'hi').decode()) # → hi
print(bytearray(b'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82').decode('utf-8')) # → привет
ba = bytearray(b'name=Ann'); print(ba.decode().split('=')) # → ['name', 'Ann']
print(bytearray(b'ab\xff').decode('utf-8')) # → UnicodeDecodeError
print(bytearray(b'ab\xff').decode('utf-8', 'ignore')) # → ab
print(type(bytearray(b'hi').decode())) # → <class 'str'>
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности