все 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Сообщить о неточности