Quoted-printable encoder and decoder for email text

Turn text into quoted-printable, the email encoding that keeps plain letters readable and writes everything else as =XX, or paste an email body full of =C3=A9 and =20 to read it.

Live demo · real result from this tool
Direction
Line breaks

Encoded

Caf=C3=A9 prices: 5 =E2=82=AC =3D cheap!
See you soon =F0=9F=91=8B

Processed on your device — nothing is uploaded.

How to use the quoted-printable tool

  1. Set Direction to Encode or Decode.
  2. Paste your text into Input. For decoding, paste the raw body from the email source.
  3. When encoding, pick Line breaks: CRLF (email standard) or LF.
  4. Copy the Encoded or Decoded result.

What it does and when to use it

Email was designed for 7-bit ASCII text. Quoted-printable is one of the two standard ways MIME uses to carry other bytes, the other being Base64. It suits text that is mostly plain English with a few accents or symbols, because the plain parts stay readable.

You meet it when you view the source of an email, debug a newsletter template, write a raw message for an SMTP test, or read an exported .eml file. Seeing =E2=80=99 where an apostrophe should be is the classic sign of quoted-printable text that was not decoded.

For bodies that are mostly binary, Base64 is shorter; see the Base64 encoder. If the escapes you see look like %C3%A9 instead, that is URL encoding and the URL decoder is the right tool. For é style text, use the HTML decoder.

How it works

This follows the quoted-printable rules in RFC 2045, section 6.7.

Encoding. Each line is turned into UTF-8 bytes. Printable ASCII characters (byte values 33 to 126) are kept as they are, except =. Spaces and tabs are kept too, unless they are the last character on the line. Every other byte is written as = followed by two upper-case hex digits. When a line would pass 76 characters, it is split with a soft break, an = at the end, and an escape is never cut in half.

Decoding. Trailing spaces at line ends are removed, soft breaks are joined, each =XX becomes one byte, and the bytes are read as UTF-8. If they are not valid UTF-8, you see them as hex with a warning.

It all happens in your browser.

Worked examples

Café = coffee        →  Caf=C3=A9 =3D coffee
Caf=C3=A9 =3D coffee  →  Café = coffee            (Decode)
"Ends with a space " →  Ends with a space=20

A long line, encoded with LF line breaks:

This line is deliberately long so that the quoted-printable encoder has to =
insert a soft line break somewhere

Limits and tips

  • Decoding assumes the original charset was UTF-8. Older emails in ISO-8859-1 or Windows-1252 will show as hex because single bytes such as =E9 are not valid UTF-8 on their own.
  • The tool works on the body text only. It does not parse email headers or encoded words such as =?UTF-8?Q?…?=.

Frequently asked questions

Why does my email show =C3=A9 and =20 instead of letters?
The message body is quoted-printable and your program did not decode it. =C3=A9 is the two UTF-8 bytes of é and =20 is a space. Paste the text here with Direction set to Decode to read it.
What is the = at the end of some lines?
It is a soft line break. Quoted-printable lines may be at most 76 characters, so long lines are split with an = at the end. The decoder joins them back together and the = disappears.
Why is the equals sign itself written as =3D?
Because = is the escape character in quoted-printable. A literal = has to be written as its byte value, 3D in hex, so it is not mistaken for the start of an escape.
Should I choose CRLF or LF?
Choose CRLF for anything that goes into an email message, because email line endings are CRLF. Choose LF if you are pasting the result into a file or tool that uses Unix line endings.
Is quoted-printable a kind of encryption?
No. It is only a way to send 8-bit text through systems that expect 7-bit ASCII. Anyone can decode it, and most of the text stays readable even before decoding.

Sources

  1. RFC 2045: MIME Part One — Format of Internet Message Bodies (section 6.7) — IETF / RFC Editor, accessed 2026-10-08

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close