Quoted-Printable, or QP encoding, is an code using printable ASCII characters (alphanumeric and the equals sign =) to transmit 8-bit data over a 7-bit data path or, generally, over a medium which is not 8-bit clean.Historically, e-mail was often referred as non-8-bit-clean, because various media were used to transfer messages, sometimes other than Internet. Modern ESMTP servers are 8-bit clean though in most cases, see 8BITMIME. It is defined as a MIME content transfer encoding for use in e-mail.
QP works by using the equals sign = as an escape character. It also limits line length to 76, as some software has limits on line length.
Quoted-Printable and Base64 are the two basic MIME content transfer encodings, if a trivial "8bit" encoding is not counted. If the text to be encoded does not contain many non-ASCII characters, then Quoted-Printable results in a fairly readableThis implies that an ASCII compatible encoding is used. A QP-encoded text in e.g. EBCDIC would not be readable of course. and compact encoded result. On the other hand, if the input is not mostly ASCII, then Quoted-Printable becomes both unreadable and extremely inefficient. Base64 is not human-readable, but has a uniform overhead for all data and is the more sensible choice for binary formats or text in a script other than Latin script.
All printable ASCII characters (decimal values between 33 and 126) may be represented by themselves, except = (decimal 61).
ASCII tab and space character characters, decimal values 9 and 32, may be represented by themselves, except if these characters would appear at the end of the encoded line. In that case, they would need to be escaped as =09 (tab) or =20 (space), or be followed by a = (soft line break) as the last character of the encoded line. This last solution is valid because it prevents the tab or space from being the last character of the encoded line.
If the data being encoded contains meaningful line breaks, they must be encoded as an ASCII CR LF sequence, not as their original byte values, neither directly nor via = signs. Conversely, if byte values 13 and 10 have meanings other than end of line (in media types,Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. November 1996. RFC 2045 # 6.7 Quoted-Printable Content-Transfer-Encoding, part "(4) (Line Breaks)". Retrieved March 18, 2013. for example), then they must be encoded as =0D and =0A respectively.
Lines of Quoted-Printable encoded data must not be longer than 76 characters. To satisfy this requirement without altering the encoded text, soft line breaks may be added as desired. A soft line break consists of an = at the end of an encoded line, and does not appear as a line break in the decoded text. These soft line breaks also allow encoding text without line breaks (or containing very long lines) for an environment where line size is limited, such as the 1000 characters per line limit of some SMTP software, as allowed by RFC 2821.
A slightly modified version of Quoted-Printable is used in message headers; see MIME#Encoded-Word.
J'interdis aux marchands de vanter trop leur marchandises. Car ils se font = vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu'= un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=A0 bi= ent=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire ils te f= abriquent pour te la vendre une =C3=A2me vulgaire.
This encodes the string:
J'interdis aux marchands de vanter trop leur marchandises. Car ils se font vite pédagogues et t'enseignent comme but ce qui n'est par essence qu'un moyen, et te trompant ainsi sur la route à suivre les voilà bientôt qui te dégradent, car si leur musique est vulgaire ils te fabriquent pour te la vendre une âme vulgaire.