Skip to content
TextArray
100% local

Quoted-printable decoder

Decode =C3=A9 escapes and soft line breaks from e-mail source — or encode your own.

Input

Quoted-printable decoder

Open the raw source of almost any e-mail and the text is riddled with =C3=A9, =E2=80=93 and lines ending in a lone = sign. That is quoted-printable, MIME's way of squeezing non-ASCII text through mail systems that only trust 7-bit characters. Paste it here and it reads again: =XX escapes become their real characters through proper UTF-8 decoding, and the trailing-equals soft line breaks that folded long paragraphs into 76-character lines are stitched back together.

The decoder is deliberately lenient, the way real mail demands: hex digits in either case, whitespace that transport added after a soft break, and invalid escapes like =ZZ passing through literally instead of killing the whole message. The RFC 2047 option additionally turns underscores into spaces, which is the variant used in encoded subject lines and headers.

Switching the mode encodes instead: printable ASCII stays readable, everything else — accents, em-dashes, emoji, control bytes — becomes =XX escapes, trailing whitespace is protected the way the RFC requires, and long lines soft-wrap at 76 characters so the output drops straight into a MIME body. The wrap never splits an escape sequence, and decoding your own output always restores the input byte for byte.

Typical uses: reading the source of a mis-rendered e-mail, debugging a newsletter template, checking what your mail library actually emits, or preparing test fixtures for a parser. Everything runs locally in your browser — correspondence never leaves your device.

FAQ

What is a soft line break?
An = sign at the very end of a line. It means "this line continues" — mail systems cap lines at 78 characters, so long paragraphs get folded. Decoding removes the = and the break, restoring the original unwrapped line.
Why does my decoded text show é instead of é?
Because the =XX bytes are decoded as UTF-8, the encoding real mail uses today. Tools that decode each byte as Latin-1 produce the é mojibake — if you have seen that, this is the fix.
What does the RFC 2047 underscore option do?
Encoded e-mail headers (subject lines that start with =?UTF-8?Q?…) use a compact variant where _ stands for a space. Turn the option on when pasting such a header body; leave it off for message bodies, where underscores are literal.
What happens to invalid sequences like =ZZ?
They pass through unchanged. Real-world quoted-printable is often slightly mangled, and a decoder that errors on the first bad escape would refuse exactly the messages you most need to read.
Is my e-mail uploaded anywhere?
No. The decoding runs entirely in your browser and your correspondence never leaves your device.