Zero Signup ToolsFree browser tools

Developer Tools

Quoted-Printable Encoder / Decoder

Encode and decode quoted-printable text and MIME encoded-word headers (=?utf-8?Q?...?=) in your browser. UTF-8 safe, no upload.

Direction
Variant
0 chars

Input bytes (UTF-8)

0

Output characters

0

Bytes escaped

0

Longest line

0 / 76

About the encoding

Quoted-Printable is one of the two MIME content transfer encodings defined by RFC 2045. It is designed for text that is mostly ASCII but contains some bytes that wouldn't survive 7-bit email transport. Every escaped byte is written as = followed by two uppercase hex digits (=3D for the equals sign, =C3=A9 for é in UTF-8). Encoded lines are limited to 76 characters using a soft line break written as = at the end of the line.

Encoded-Word (RFC 2047) reuses the same =XX hex escape so non-ASCII characters can appear inside structured mail headers like Subject and From. The Q variant differs from body QP in two places: literal space becomes underscore, and ?, _, and = must always be escaped. A complete encoded-word looks like =?utf-8?Q?Caf=C3=A9?=.

How to use

  1. Choose Encode to turn plain text into quoted-printable, or Decode to turn QP text back into plain text.
  2. Pick the variant: Quoted-Printable (RFC 2045) for email bodies, or Encoded-Word (RFC 2047) for headers like Subject.
  3. Type or paste your text into the input area. Output updates instantly as you edit.
  4. Use Copy to copy the result, or Use output as input to chain another encode or decode without retyping.
  5. Load sample fills the input with a realistic UTF-8 example so you can see the encoding behavior at a glance.

About this tool

Quoted-Printable Encoder / Decoder converts between plain text and the quoted-printable (QP) form defined by RFC 2045 for MIME email bodies. QP keeps printable ASCII bytes readable and rewrites everything else as an =XX hex escape, so a UTF-8 é is written as =C3=A9 and a literal '=' is written as =3D. Encoded output is automatically wrapped at the RFC limit of 76 characters per line using soft line breaks of the form '=\r\n', which decoders join back into a single logical line. The decoder is tolerant: it accepts soft breaks written with CR, LF, or CRLF, and it accepts both uppercase and lowercase hex digits in escape sequences. A second variant covers the encoded-word form from RFC 2047 (=?utf-8?Q?...?=) used in structured mail headers like Subject and From. Encoded-word Q encoding has two extra rules on top of body QP: literal space becomes underscore, and the characters ?, _, and = always have to be escaped. The decoder recognizes the =?charset?Q?...?= wrapper, extracts the charset label, and feeds the bytes to TextDecoder so headers in UTF-8, ISO-8859-1, Windows-1252, Shift_JIS, and other supported labels decode correctly. If a byte sequence isn't valid for the declared charset it is replaced with the Unicode replacement character (U+FFFD) and the count is surfaced so you notice. Useful when debugging email delivery, when an SMTP transcript shows =E2=80=99 in the body, when an IMAP client renders a Subject like '=?utf-8?Q?Caf=C3=A9?=' literally, when migrating mailboxes through tools that round-trip MIME, when writing a custom mailer and the QP block doesn't decode the way it should, when reading raw .eml files from quarantines, or when an inbound webhook from a transactional mail provider hands you the body verbatim. Everything runs locally in your browser. Pasted content is not uploaded.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsDeveloper Tools