Quoted-Printable Encode/Decode
Encode text to quoted-printable (RFC 2045) or decode QP back to readable text with correct UTF-8 multibyte handling and 76-column soft line breaks, entirely in your browser.
What is quoted-printable and where is it used?
Quoted-printable (QP) is a MIME content-transfer encoding defined in RFC 2045. It turns text with special or non-ASCII characters into mostly readable ASCII, which is why it is used for email bodies, EML files, mailing list archives and SMTP headers like =?UTF-8?Q?...?=.
How does quoted-printable encoding work?
Every byte that is not a safe printable ASCII character is replaced by an equals sign followed by its two-digit hexadecimal value, so a é becomes =C3=A9 in UTF-8. Safe characters (letters, digits, most punctuation) stay readable, and the equals sign itself is always escaped as =3D.
What are soft line breaks?
RFC 2045 limits encoded lines to 76 characters. When a line would run longer, the encoder inserts a = immediately followed by a line break; at decoding time this = plus the break is removed, so the original text is restored exactly. Hard line breaks without a = are real newlines and are preserved.
How are non-ASCII characters handled?
This tool uses UTF-8 as the charset. Characters outside ASCII are first converted to their UTF-8 bytes, and each byte is escaped individually, so a three-byte character such as 中 becomes =E4=B8=AD. Decoding collects the bytes and rebuilds the original UTF-8 text.
Why do I see =3D, =20 or =2E in the output?
=3D is the equals sign itself, which must always be escaped so it is not confused with an escape sequence. =20 and =09 encode spaces and tabs when they would appear at the end of a line, where trailing whitespace is not allowed to survive transport.
What does Auto detect mode do?
Auto looks at your input: if it contains =XX sequences or lines ending with =, it decodes; otherwise it encodes. If the guess is wrong, switch to Encode or Decode explicitly with the mode selector for full control.
Is my text uploaded anywhere?
No. Encoding, decoding and detection all run locally in your browser with JavaScript. Nothing you paste is sent to any server, so you can safely process confidential email content.
Why does decoding report an invalid sequence?
In decode mode the input must be plain ASCII. A = that is not followed by two hexadecimal digits, or any non-ASCII character pasted into the decode input, cannot be valid quoted-printable, so the tool shows an error instead of producing mojibake.
When should I use quoted-printable instead of Base64?
QP keeps ordinary text almost fully readable and stays compact for mostly-ASCII content, while Base64 encodes everything and grows 4/3 but handles binary data. Email systems support both; QP is nicer for human-readable messages, Base64 for attachments and dense binary.
How to Use Quoted-Printable Encode/Decode
Quoted-printable (QP) is the MIME encoding that email systems use to carry text containing accents, symbols or non-Latin scripts through ASCII-only channels. This tool encodes text to QP and decodes it back with correct UTF-8 multibyte handling, =XX escapes and 76-column soft line breaks. Everything runs locally in your browser.
- Pick a mode: Auto detect (recommended), Encode → QP, or Decode → Text.
- Type or paste into the input box — the result updates live as you type. In Auto mode the tool treats input containing =XX sequences or trailing = signs as QP to decode, anything else as text to encode.
- Line breaks in your text become hard breaks in the output; the encoder inserts soft breaks (a = at the end of a line) so no line exceeds 76 characters, exactly as RFC 2045 requires.
- Use Swap to move the output back into the input, and Copy to send the result to your clipboard.
The charset is fixed to UTF-8 — text is encoded as UTF-8 bytes and QP output is decoded as UTF-8. If you see =E4=B8=AD-style runs, those are multi-byte characters, one =XX pair per byte.
Related Tools
- Base64 Encode/Decode Free online Base64 encoder and decoder. Convert text to Base64 and Base64 to text instantly. No server upload, 100% private - runs entirely in your browser.
- Email Validator Validate email addresses instantly. Check syntax, format, domain and RFC 5322 compliance. Support batch validation for multiple addresses.
- HTML Entity Encode/Decode Instantly encode or decode HTML entities. Convert special characters like <, >, &, ", ' to HTML entities and vice versa. Free, fast, and runs entirely in your browser.
- Hex Viewer View file contents in hex dump format with search, offset navigation, and virtual scrolling
- AES Encryption / Decryption AES encrypt/decrypt with CBC, CFB, CTR, OFB, ECB modes, Pkcs7/ZeroPadding/NoPadding, 128/192/256-bit keys, Base64 output, auto-detect key/IV format
- Brotli Compressor Free online Brotli compressor. Compress files to .br with quality 0–11 or decompress .br back to the original. Runs entirely in your browser — no upload, no install.
- Zstd Compressor Free online zstd compressor. Compress files to .zst with Zstandard levels 1–19 or decompress .zst back to the original. Runs entirely in your browser — no upload, no install.
- MessagePack Converter Free online MessagePack converter. Encode JSON to msgpack and decode msgpack hex, base64 or .bin files back to readable JSON, with a size comparison. No upload, runs in your browser.