Skip to content
shellhacks.dev
Debugging

Quoted Printable Decoder

Decode quoted-printable email bodies and =?UTF-8?B?...?= encoded subject lines, or encode text for a body or a header.

Free · No sign-up · Your inputs stay in your browser

Input

Decode quoted-printable and MIME encoded words

Output

Decoded

151 characters

Quoted-printable (RFC 2045) keeps ASCII readable and writes every other byte as =XX, breaking lines at 76 characters with a trailing = that is removed on decoding. Headers cannot carry raw UTF-8, so a non-ASCII subject is sent as an encoded word (RFC 2047): =?charset?B?base64?= or =?charset?Q?...?=. A stray =20 or =3D in a message means a client showed the encoded form.

Runs in this browser. Nothing you paste is sent to a server.

Why email does this

SMTP was designed for 7-bit ASCII lines, so anything else is encoded. Quoted-printable (RFC 2045) keeps mostly-ASCII text readable and encodes the rest; headers use encoded words (RFC 2047) because they cannot carry a Content-Transfer-Encoding. When a message shows =20, =3D or =C3=A9 in a client, a layer of this decoding was skipped.

Debugging generated mail

Mailpit and similar catchers show the raw source. Decoding it here confirms whether a garbled character was wrong when the application built the message or only displayed wrongly.

Share

Frequently asked questions

What does =3D mean in an email?
It is the encoded form of the equals sign itself, since = introduces every escape in quoted-printable.
What is the difference between B and Q encoding in a subject?
B is base64 of the bytes; Q is like quoted-printable with underscores for spaces. Q keeps mostly-Latin text readable; B is shorter for other scripts.
Is what I paste sent anywhere?
No. The tool runs entirely in your browser with JavaScript. Nothing you type or paste is sent to our server or stored.

Go deeper

Suggested reading

Keep planning

Similar tools