все Python 3binasciiфункция
binascii.b2a_qp()
uuencode и quoted-printable
Кодирует байты в quoted-printable: ASCII остаётся как есть, прочее превращается в =XX. Формат тел и заголовков писем MIME.
Синтаксис
binascii.b2a_qp(data, quotetabs=False, istext=True, header=False)
Знак '=' сам экранируется как '=3D' — 'x = 1' превращается в 'x =3D 1', и это не ошибка. Кириллица раздувается втрое: каждый байт UTF-8 — три символа. header=True кодирует пробелы как '_' для заголовков писем (RFC 1522). Для писем в целом удобнее пакет email, который сам выберет между quoted-printable и base64.
Примеры
import binascii
print(binascii.b2a_qp(b'x = 1')) # → b'x =3D 1'
print(binascii.b2a_qp('Пр'.encode('utf-8'))) # → b'=D0=9F=D1=80'
print(binascii.b2a_qp(b'a b', header=True)) # → b'a_b'
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности