1001Ferramentas
✉️Converters

Quoted-Printable

Encode and decode text in Quoted-Printable (RFC 2045), the format used in email to represent accents and special characters in plain ASCII.

QP

See how an accent looks in raw email

You are building or debugging a message and you need to know how accented text shows up in the raw version of the email, the one where ola turns into ol=C3=A1. Quoted-Printable is the encoding behind that: it keeps most of what is already ASCII readable and escapes everything else. Type your sentence in the field and the encoded version appears below, updating on every keystroke. This page only goes one way, text to code, with no decode field.

The path is always the same. Text is converted to UTF-8 bytes; every byte that is already printable ASCII, from the exclamation mark to the tilde, passes through untouched, a space stays a space, and everything else becomes an equals sign followed by two uppercase hex digits. Since the equals sign is itself the escape character, it always comes out as =3D. A tab becomes =09. That is why an a with an acute accent takes two pairs, =C3=A1: it is two bytes in UTF-8.

Two limits worth knowing. The field takes a single line, and the output does not apply the seventy six column wrap with the trailing equals soft break that RFC 2045 requires, so do not use this to produce the full body of a long message. A trailing space, which the spec says to encode as =20, comes out literal here. For large payloads use your stack's library, such as quopri in Python. For checking a short snippet it works well, and everything runs in your browser.

Frequently asked questions

Can I decode Quoted-Printable on this page?
No. It only converts text into Quoted-Printable. For the reverse use quopri.decodestring in Python, quoted_printable_decode in PHP, or your mail client's view source option.
Why does an accented a become =C3=A1 and not =E1?
Because encoding starts from UTF-8, where that letter takes two bytes. In Latin-1 it would be a single byte and come out as =E1. That is why the charset declared in the header changes everything.
Does this work for the subject line?
Only partly. Headers use the encoded-word format, which adds rules of its own, such as writing a space as an underscore. What you get here matches the message body, not the header.

Related Tools