RFC 2045 · MIME · =XX encoding

Quoted-Printable encoder

Encodes non-ASCII bytes as =XX hex pairs while keeping most ASCII text readable. Used in email (MIME) bodies and anywhere you need mostly-readable binary-to-text. Line length limit per RFC 2045.

0 chars
encodes to
or decode
0 chars

How to use this tool

  1. Type or paste text into the Text → Quoted-Printable box — the encoded result appears instantly in the Quoted-Printable output.
  2. Hit Copy result to copy the encoded output to your clipboard.
  3. To go the other way, paste a quoted-printable string into the Quoted-Printable → Text box and the plain text appears in Decoded text.
  4. Toggle Encode all bytes (hex dump mode) to force every byte into a =XX pair, or set Line width to change where soft line breaks are inserted (default 76).
  5. Use Clear any time to reset a box and start over.

Why this tool is helpful

Debug email MIME bodies

Email clients encode message bodies in quoted-printable. Read and write the exact =XX sequences you see in raw email source.

Keep text mostly readable

Only non-printable bytes are escaped, so ASCII stays human-readable while any high or control bytes are safely represented.

Inspect raw bytes

With Encode all bytes (hex dump mode), every byte becomes a =XX pair so you can see the exact underlying byte values.

Handle non-ASCII & Unicode

Accents, emoji, and non-Latin scripts are encoded as their UTF-8 bytes, so any text survives transport across 7-bit systems.

Respect RFC 2045 line limits

Control the soft line break width (default 76) to match the standard's 76-character line recommendation for MIME bodies.

Stay private

Everything runs in your browser. Nothing is uploaded, logged, or sent to a server — safe for sensitive payloads.

FAQ

What exactly is quoted-printable?

Quoted-printable is a MIME content-transfer encoding defined in RFC 2045. It keeps printable ASCII characters unchanged and encodes other bytes as =XX hexadecimal pairs, making it ideal for email bodies that are mostly text.

How does the encoding work?

In default mode, printable ASCII (including space and tab) passes through unchanged — except =, which is escaped. Any other byte (control characters, bytes ≥ 127) is replaced by = followed by its two uppercase hex digits.

Why does = become =3D?

The = character introduces an escape sequence, so a literal = must itself be escaped. 3D is the hexadecimal value of the ASCII = character.

What are the soft line breaks (a trailing =)?

Quoted-printable lines are limited in length. When a line wraps, a = is placed at the end of the line and the next line continues — the decoder joins them back together. A =XX pair never spans a line break.

Is this the same as encryption?

No. Quoted-printable is fully reversible and provides no confidentiality. It's a transport encoding for safely moving bytes through text-only channels, not a way to hide data.

Can it handle Unicode, like emoji?

Yes. Input is converted to UTF-8 bytes first, so accented characters and emoji are encoded as one or more =XX pairs and decoded back to the original text.

Does any of my data leave my browser?

Never. All encoding and decoding runs locally in JavaScript. Your input is not sent to, stored on, or logged by any server.