Quoted-printable encoder and decoder

Quoted-printable is the email encoding that turns é into =C3=A9 and breaks long lines with a trailing =. Paste text to encode it, or paste the body of a raw email to decode it back to readable text.

Mode

Runs in your browser: nothing you enter is sent anywhere.

How to use it

  1. Choose Encode or Decode.
  2. Paste the text. For decoding, paste only the body part that has Content-Transfer-Encoding: quoted-printable, not the headers.
  3. When decoding old emails, pick the charset named in the Content-Type header.
  4. Copy the result.

How it works

Encoding (RFC 2045, section 6.7):

  • The text is turned into UTF-8 bytes.
  • Bytes 33–126 except = are written as they are; = becomes =3D; any other byte becomes =XX in upper-case hex.
  • A space or tab stays, unless it is the last character of a line.
  • Line breaks of the text are kept. A line longer than 76 characters is cut with a soft break: at most 75 characters plus =. An =XX group is never split.

Decoding removes trailing spaces of each line, joins lines that end with =, turns each =XX into a byte and reads the bytes in the chosen charset.

Worked example

Café = 5€ is encoded as Caf=C3=A9 =3D 5=E2=82=AC:

  • é is two bytes in UTF-8, C3 A9;
  • = becomes =3D, so the decoder will not read it as an escape;
  • € is three bytes, E2 82 AC;
  • the spaces stay as they are.

Decoding Caf=C3=A9 au= followed by a line lait gives Café au lait: the = at the end of the first line is a soft break.

Tips

  • Seeing =E2=80=99 or =C2=A0 in an email? Those are UTF-8 for a curly apostrophe and a no-break space.
  • Mail protocols use CRLF line ends; this tool works with plain line breaks, and mail software adds the CR itself.
  • For attachments and binary data, email uses Base64 instead: see the Base64 encoder.

Frequently asked questions

What is quoted-printable?

A transfer encoding for email defined in RFC 2045. Printable ASCII characters stay as they are, so mostly-English text remains readable, and every other byte is written as = and two hex digits. Lines are kept under 76 characters with soft line breaks.

What is a soft line break?

An = at the very end of a line. It means the line was cut only to stay short, and the decoder joins it with the next line without a line break.

Why does a space at the end of a line become =20?

Mail software may strip trailing spaces and tabs, so the encoder writes a space or tab at the end of a line as =20 or =09. Spaces inside a line stay as they are.

Which charset should I pick for decoding?

The one in the email's header, such as Content-Type: text/plain; charset="windows-1251". Most mail today is UTF-8. Encoding always uses UTF-8.

What happens to a stray = sign?

An = that is not followed by two hex digits and is not at the end of a line is not valid quoted-printable. The decoder keeps it as it is and tells you how many it found.

More in Developer

All tools in this category: Developer ·Updated November 4, 2026

Privacy choices

Google Analytics shows us which tools are used and whether they work. It may set cookies. Your choice is kept in this browser.