Decode a quoted-printable email body back to readable text, resolving the escapes and removing soft line breaks.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
Decoding an email body
Each =XX becomes the byte it names, soft line breaks are removed, and the resulting bytes are decoded as text. This is what turns a raw message source back into something readable.
Worked example
caf=C3=A9 → café =E2=82=AC → € line ending in = → joined to the next line
The classic symptom
Seeing =20 or =C3=A9 in an email you have opened means the client failed to decode quoted-printable, usually because the Content-Transfer-Encoding header was missing or wrong. The message is intact; the declaration was not.
Charset matters
The =XX escapes name bytes, not characters. Which characters those bytes represent depends on the charset in the Content-Type header. Bytes encoded as Latin-1 and decoded as UTF-8 produce mojibake, which is the same class of mismatch that affects every byte-oriented format.
Limits
The decoder handles the encoding, not the message: it does not parse MIME structure or separate headers from body. Everything is decoded in your browser.
How to use the Quoted-Printable Decoder
- Paste the encoded message body.
- Click "Decode".
- Check the notes for malformed escapes or lower-case hex, which indicate a non-conforming sender.
Frequently asked questions
What do the equals-sign sequences mean?
An equals sign followed by two hex digits is one byte of the original data. An equals sign at the end of a line is a soft break and simply disappears. Everything else is literal text.
Why does my decoded text still look wrong?
Quoted-printable carries bytes, not characters. If the original message declared a charset other than UTF-8, the recovered bytes need decoding with that charset – check the Content-Type header of the message part.
Why am I seeing =20 or =C3=A9 in an email I have opened?
Because the client did not decode the body, almost always because the Content-Transfer-Encoding header was missing or wrong. The message itself is intact – only the declaration that says how to read it was lost, which is why forwarding it sometimes fixes the display.
What is the difference between quoted-printable and Base64 in email?
Quoted-printable leaves printable characters as themselves, so a mostly-English body stays readable in the raw source and barely grows. Base64 makes everything opaque and adds a third. Mail therefore uses quoted-printable for text bodies and Base64 for attachments.