все Python 3binasciiфункция
binascii.a2b_qp()
uuencode и quoted-printable
Декодирует quoted-printable в байты: =XX становятся байтами, мягкие переносы '=\n' убираются. Результат — bytes, текст получают .decode().
Синтаксис
binascii.a2b_qp(data, header=False)
Частая ошибка — ждать str: после a2b_qp нужен ещё .decode() в кодировке из заголовка письма (charset=...). Мягкий перенос '=' в конце строки склеивает строки, поэтому число строк на выходе меньше, чем на входе. Подчёркивания становятся пробелами только при header=True — в теле письма '_' остаётся '_'.
Примеры
import binascii
raw = binascii.a2b_qp(b'=D0=9F=D1=80=\n=D0=B8')
print(raw) # → b'\xd0\x9f\xd1\x80\xd0\xb8'
print(raw.decode('utf-8')) # → При
print(binascii.a2b_qp(b'a_b'), binascii.a2b_qp(b'a_b', header=True)) # → b'a_b' b'a b'
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности