17db96d56Sopenharmony_ci:mod:`quopri` --- Encode and decode MIME quoted-printable data
27db96d56Sopenharmony_ci==============================================================
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci.. module:: quopri
57db96d56Sopenharmony_ci   :synopsis: Encode and decode files using the MIME quoted-printable encoding.
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci**Source code:** :source:`Lib/quopri.py`
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci.. index::
107db96d56Sopenharmony_ci   pair: quoted-printable; encoding
117db96d56Sopenharmony_ci   single: MIME; quoted-printable encoding
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci--------------
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciThis module performs quoted-printable transport encoding and decoding, as
167db96d56Sopenharmony_cidefined in :rfc:`1521`: "MIME (Multipurpose Internet Mail Extensions) Part One:
177db96d56Sopenharmony_ciMechanisms for Specifying and Describing the Format of Internet Message Bodies".
187db96d56Sopenharmony_ciThe quoted-printable encoding is designed for data where there are relatively
197db96d56Sopenharmony_cifew nonprintable characters; the base64 encoding scheme available via the
207db96d56Sopenharmony_ci:mod:`base64` module is more compact if there are many such characters, as when
217db96d56Sopenharmony_cisending a graphics file.
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci.. function:: decode(input, output, header=False)
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci   Decode the contents of the *input* file and write the resulting decoded binary
267db96d56Sopenharmony_ci   data to the *output* file. *input* and *output* must be :term:`binary file objects
277db96d56Sopenharmony_ci   <file object>`.  If the optional argument *header* is present and true, underscore
287db96d56Sopenharmony_ci   will be decoded as space. This is used to decode "Q"-encoded headers as
297db96d56Sopenharmony_ci   described in :rfc:`1522`: "MIME (Multipurpose Internet Mail Extensions)
307db96d56Sopenharmony_ci   Part Two: Message Header Extensions for Non-ASCII Text".
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci.. function:: encode(input, output, quotetabs, header=False)
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci   Encode the contents of the *input* file and write the resulting quoted-printable
367db96d56Sopenharmony_ci   data to the *output* file. *input* and *output* must be
377db96d56Sopenharmony_ci   :term:`binary file objects <file object>`. *quotetabs*, a
387db96d56Sopenharmony_ci   non-optional flag which controls whether to encode embedded spaces
397db96d56Sopenharmony_ci   and tabs; when true it encodes such embedded whitespace, and when
407db96d56Sopenharmony_ci   false it leaves them unencoded.
417db96d56Sopenharmony_ci   Note that spaces and tabs appearing at the end of lines are always encoded,
427db96d56Sopenharmony_ci   as per :rfc:`1521`.  *header* is a flag which controls if spaces are encoded
437db96d56Sopenharmony_ci   as underscores as per :rfc:`1522`.
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci.. function:: decodestring(s, header=False)
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci   Like :func:`decode`, except that it accepts a source :class:`bytes` and
497db96d56Sopenharmony_ci   returns the corresponding decoded :class:`bytes`.
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci.. function:: encodestring(s, quotetabs=False, header=False)
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci   Like :func:`encode`, except that it accepts a source :class:`bytes` and
557db96d56Sopenharmony_ci   returns the corresponding encoded :class:`bytes`. By default, it sends a
567db96d56Sopenharmony_ci   ``False`` value to *quotetabs* parameter of the :func:`encode` function.
577db96d56Sopenharmony_ci
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ci.. seealso::
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ci   Module :mod:`base64`
637db96d56Sopenharmony_ci      Encode and decode MIME base64 data
64