Chapter 21. MIME and Network Encodings
What
travels on a network are streams of bytes or text. However, what you
want to send over the network often has more structure. The
Multipurpose Internet Mail Extensions (MIME) and other encoding
standards bridge the gap by specifying how to represent structured
data as bytes or text. Python supports such encodings through many
library modules, such as base64
,
quopri
, uu
, and the modules of
the email
package. This chapter covers these
modules.
Encoding Binary Data as Text
Several kinds of media (e.g., email messages) contain only text. When you want to transmit binary data via such media, you need to encode the data as text strings. The Python standard library supplies modules that support the standard encodings known as Base 64, Quoted Printable, and UU.
The base64 Module
The
base64
module supports the encoding specified in
RFC 1521 as Base 64. The Base 64 encoding is a compact way to
represent arbitrary binary data as text, without any attempt to
produce human-readable results. Module base64
supplies four functions.
The quopri Module
The
quopri
module supports the encoding specified in
RFC 1521 as Quoted Printable (QP). QP can represent any binary data
as text, but it’s mainly intended for data that is
textual, with a relatively modest amount of characters with the high
bit set (i.e., characters outside of the ASCII range). For such data,
QP produces results that are both compact and rather human-readable.
Module quopri
supplies ...
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.