UTILS.
100% in-browser
✉️

Quoted-Printable Encode & Decode

Encode text to or decode text from MIME Quoted-Printable (=XX escapes, soft line breaks), with a body mode and the RFC 2047 header 'Q' variant.

Enter text above to encode or decode.

About this tool

The Quoted-Printable Encode & Decode tool converts text to and from MIME Quoted-Printable, the content-transfer encoding used in email for text that is mostly ASCII with occasional non-ASCII bytes. Encoding (per RFC 2045 §6.7) passes printable ASCII (33–126) through unchanged except for '=' itself, which becomes =3D. Any byte outside that range — accented letters, symbols, and multi-byte UTF-8 sequences — is written as =HH using uppercase hex. Literal spaces and tabs are kept, except at the end of a line where they are encoded as =20 or =09 so they survive transport.

Everything runs locally in your browser and nothing is uploaded. In body mode the encoder enforces the 76-character line limit by inserting a soft line break — an '=' immediately before the CRLF — and it never splits a =HH triplet across a break. Decoding reverses all of this: it removes soft breaks ('=' followed by a newline), turns each =HH back into its byte, and leaves every other character as-is, finally interpreting the reconstructed bytes as UTF-8 so accented and non-Latin text round-trips correctly.

A mode selector switches between standard body encoding and the RFC 2047 'Q' header variant used inside =?charset?Q?...?= encoded-words. In the header variant a space is represented by an underscore '_' (and a literal '_' is encoded as =5F), which the decoder maps back to a space. Choose a direction and mode, paste your text, and copy the result.

Frequently asked questions

What is Quoted-Printable used for?
It is an email content-transfer encoding for text that is mostly ASCII but has some non-ASCII bytes. It keeps readable characters legible while safely escaping bytes that could be altered in transit, unlike Base64 which obscures the whole message.
What is a soft line break?
To respect the 76-character line limit, the encoder ends a wrapped line with a trailing '=' right before the CRLF. That '=' is a soft break: it means 'this line continues', so the decoder joins the lines back together and it is not part of the data.
How does the header 'Q' mode differ from body mode?
The RFC 2047 'Q' variant (used inside =?UTF-8?Q?...?= encoded-words in headers) represents a space as an underscore '_' instead of =20, and encodes a literal underscore as =5F. Body mode keeps spaces literal and applies the 76-column soft-wrapping.
Does it handle Unicode / UTF-8 correctly?
Yes. On encode, each character is converted to its UTF-8 bytes and any byte outside 33–126 becomes =HH. On decode, all the decoded bytes are reassembled and read as UTF-8, so multi-byte characters like é, £, and — round-trip exactly.

More tools