Python Glossary English

все Python 3Байтовые последовательностифункция

bytes.decode

bytes — кодирование

Декодирует байты в строку (str) по заданной кодировке (по умолчанию UTF-8).

Синтаксис

b.decode(...)

По умолчанию errors='strict', и любой байт, не укладывающийся в кодировку, даёт UnicodeDecodeError; режимы 'replace' и 'ignore' гасят исключение ценой порчи текста. Кодировка latin-1 не падает никогда, потому что покрывает все 256 значений байта, — так что кодировка, при которой ошибка «наконец исчезла», чаще всего просто выдаёт мусор. Если байты приходят кусками из сети или файла, разрез посреди многобайтового символа тоже уронит decode — для потока нужен инкрементальный декодер.

Примеры

print(b'hi'.decode())   # → hi
print(b'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('utf-8'))   # → привет
print(b'caf\xe9'.decode('latin-1'))   # → café
print(b'\xff'.decode('utf-8'))   # → UnicodeDecodeError
print(b'a\xffb'.decode('utf-8', errors='ignore'))   # → ab
print('hi'.encode())   # → b'hi'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности