Python Glossary English

все Python 3codecsфункция

codecs.decode()

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

Декодирует объект кодеком по имени. Для байтов в текст хватает bytes.decode; codecs.decode нужен для кодеков base64, hex, zlib, rot13 и unicode_escape.

Синтаксис

codecs.decode(obj, encoding='utf-8', errors='strict')

Для обычного «байты → строка» это то же, что bytes.decode, и выигрыша нет. Нужна функция там, где bytes.decode бессилен: обратить base64 или hex, распаковать zlib, превратить литерал '\u043f' в букву кодеком unicode_escape. Результат не всегда str: decode(b'aGk=', 'base64') вернёт bytes. Без errors повреждённые данные дают UnicodeDecodeError — для «прочитать хоть что-то» передают errors='replace'.

Примеры

import codecs
print(codecs.decode(b'aGk=\n', 'base64'))  # → b'hi'
print(codecs.decode(b'6869', 'hex'))  # → b'hi'
print(codecs.decode(b'\\u043f', 'unicode_escape'))  # → п
import codecs
print(codecs.decode(b'ok\xff', 'utf-8', 'replace'))  # → ok�

См. также

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

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