1. Home
  2. Free tools
  3. Email deliverability tools
  4. Quoted-printable decoder

Quoted-printable decoder and encoder, with =?UTF-8?Q?…?= subjects

In short: Decodes quoted-printable bodies and RFC 2047 encoded-word headers in the part's own charset, flags broken escapes and lines over 76 characters, and encodes text or a subject the other way. Limit: It decodes one part at a time; for a whole multipart message use the EML viewer.

Quoted-printable is how email carries non-ASCII text through servers that only pass 7-bit lines: é becomes =C3=A9 in UTF-8, and a line ending in = continues on the next. Paste the encoded text, a whole MIME part or an =?UTF-8?Q?…?= subject to decode it in the right charset, or switch to Encode to produce it.

Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing

Runs in your browser. Nothing is uploaded.

Sample result from the Quoted-printable decoder
Show the sample result as

Sample result

"caf=C3=A9 =E2=80=94" decodes to "café —" in UTF-8, read from the part's own Content-Type.

Decoded
Your café order is confirmed —
=XX escapes
10
Soft line breaks
1

What this means for you

The raw message is readable again, in the charset it was sent in.

Next step:Open a whole .eml file
  • Bodies and =?UTF-8?Q?…?= subjects
  • 12 charsets, or the part's own
  • Broken escapes and long lines flagged
  • Encodes text and subjects too
  • MIME
  • Encoding
  • Raw email

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

How do I decode quoted-printable text?

  1. Copy the encoded part from the raw message (in Gmail: ⋮, Show original). Include its Content-Type and Content-Transfer-Encoding lines if you can, so the charset is read from them.
  2. Paste it and press Decode. Without headers, pick the charset; UTF-8 is right for most mail sent since 2010.
  3. Copy or download the decoded text. If it is HTML, open the whole .eml file in the EML viewer to see it rendered.
  4. To go the other way, choose Encode a body or Encode a subject, type the text and copy the encoded result.

Example

You enter
A MIME part with Content-Type: text/plain; charset="utf-8" and Content-Transfer-Encoding: quoted-printable, containing Jos=C3=A9, caf=C3=A9, =E2=80=94, we=E2=80=99ll and one soft line break.
You get
"Hi José, Your café order is confirmed — we’ll send the receipt to [email protected] once it ships." Read as utf-8 from the pasted Content-Type, with 10 =XX escapes and 1 soft line break decoded. caf=E9 with Windows-1252 chosen also gives "café"; =?UTF-8?Q?Caf=C3=A9_order?= gives "Café order".
Limits
Runs in your browser; one part at a time. Encoding produces UTF-8.

What is quoted-printable encoding?

A content transfer encoding defined in RFC 2045, section 6.7. Printable ASCII stays as it is, so English text remains readable; every other byte becomes = and two hex digits, and = itself becomes =3D. Lines are limited to 76 characters, and a line that ends in = is a soft line break: it was only split for transport and is joined back on decoding. That's why raw emails show caf=C3=A9, a stray =20 before a line break, or words cut in half with an =.

The escapes are bytes, not characters, so the charset decides what they mean. =C3=A9 is é in UTF-8, while =E9 is é in Windows-1252 or ISO-8859-1. Decoding with the wrong charset gives the familiar é or � mojibake; the CSV encoding fixer repairs the same problem in spreadsheets.

How do I decode =?UTF-8?Q?…?= in a subject line?

Headers can't carry 8-bit text, so RFC 2047 wraps it in encoded words: =?charset?Q?text?= for a quoted-printable variant in which _ means a space, or =?charset?B?text?= for base64. Paste the Subject or From line and both forms are decoded; adjacent encoded words are joined as the RFC says. Encode a subject does the reverse, splitting long subjects into encoded words of at most 75 characters without cutting a character in two.

If you're reading raw source to work out why a message was filtered, the email header analyzer reads the authentication results and hops from the same headers, and the EML viewer decodes a whole saved message, every part and attachment, in one go.

Quoted-printable or base64?

Quoted-printableBase64
Best forMostly ASCII text with some accentsBinary files and non-Latin text
Readable when rawMostlyNo
SizeGrows with every non-ASCII byte (3 characters each)About 33% larger, always
Header form=?UTF-8?Q?…?==?UTF-8?B?…?=

Who uses this tool, and for what?

Developers
Read the body of a raw message or a bounce your app received, in the charset it was sent in.
Deliverability teams
Decode the subject and body of a message from Show original while working out why it was filtered.
Support teams
Make sense of a customer's forwarded raw email full of =C3=A9 and soft line breaks.

What can’t this tool tell you?

  • It decodes one part at a time; for a whole multipart message use the EML viewer.
  • Encoding produces UTF-8 only.
  • Without a pasted Content-Type, the charset you pick is assumed; a wrong pick shows as mojibake, not an error.

Common questions

What does =20 mean in an email?
A space. =20 is the hex code of the space character; quoted-printable encodes a space when it falls at the end of a line, so mail servers don't strip it.
Why are there = signs at the end of lines in my email?
They're soft line breaks. Quoted-printable limits lines to 76 characters, so long lines are split with a trailing =. Decoding removes the = and joins the line back together.
Why does the decoded text show é or ’?
UTF-8 bytes decoded as Windows-1252. Pick UTF-8 as the charset, or paste the part with its Content-Type line so the right charset is read from it.
Can it decode base64 parts too?
Yes, when the pasted part includes Content-Transfer-Encoding: base64. Encoded-word subjects in either Q or B form are decoded without headers.
Is my email uploaded?
No. Decoding and encoding run in your browser; nothing is sent anywhere.

Sources

Authentication and capacity are half of deliverability.

The other half is who you send to. Every hard bounce counts against the domain and inboxes you are sending from, and nothing in DNS can tell you which addresses on your list are dead.

  • Bulk verification with real SMTP mailbox checks
  • Hard bounces removed before a send, not discovered after
  • Catch-all, disposable and role detection on every row

Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then monthly plans from $9, or one flat price with fair use, never cut off.

100 free checks, no card Cancel anytime Secure payment by Stripe