Quoted-Printable Decoder

Encode and decode Quoted-Printable format used in email (MIME) systems. Handles soft line breaks and non-ASCII characters. All processing done in your browser.

Encode & Decode MIME Compliant Client-Side Processing
Result will appear here...

How to Use Quoted-Printable Decoder

1

Choose Mode

Select Decode (QP to text) or Encode (text to QP) mode.

2

Enter Input

Paste Quoted-Printable text or plain text depending on the mode.

3

Convert & Copy

Click Convert and copy the result to your clipboard.

What is Quoted-Printable?

Quoted-Printable is an encoding method used in MIME (Multipurpose Internet Mail Extensions) to represent non-ASCII characters in email messages. It encodes bytes that are not printable ASCII characters (values outside 33-126, except space) as =XX where XX is the hexadecimal value of the byte.

How It Works

Escape Encoding

Non-ASCII and special chars are encoded as =XX

Soft Line Breaks

Lines are wrapped at 76 chars using = at end of line

Safe Characters

Printable ASCII (33-126) and tabs/spaces pass through unchanged

Frequently Asked Questions

Where is Quoted-Printable used?

Quoted-Printable is primarily used in email systems (MIME) for encoding message bodies. It is the Content-Transfer-Encoding method for text-based email content that contains non-ASCII characters.

What is a soft line break?

A soft line break is represented by = at the end of a line followed by CRLF. It indicates that the line was wrapped for transmission but should be rejoined when decoded. This ensures lines stay under 76 characters.

How is it different from Base64?

Quoted-Printable keeps most ASCII text readable and only encodes non-ASCII or special characters. Base64 encodes everything and produces output about 33% larger. QP is preferred for mostly-ASCII content, while Base64 is better for binary data.

How are non-ASCII characters encoded in Quoted-Printable?

Each byte of the UTF-8 sequence becomes =XX: an e-acute is two bytes written =C3=A9, and a Chinese word becomes twelve =XX groups. ASCII letters, digits, and most punctuation pass through literally, which keeps European-language text mostly readable - the design goal of the encoding.

What is the 76-character line limit and a soft line break?

RFC 2045 section 6.7 requires encoded lines no longer than 76 characters. When a line must be split, an = at the end of the line marks a soft break - the decoder removes it and joins the lines with no space or newline. A hard line break in the original is preserved as =0D=0A, so the two are unambiguous.

How is the = character itself encoded?

As =3D - the escape character must escape itself, exactly like a backslash in string literals. Position disambiguates the trailing case: =3D is data, while a bare = at line end is transport (a soft break). This is also why a quoted-printable body where every = starts a valid hex pair decodes cleanly, and anything else signals corruption.

Where does Quoted-Printable appear in email headers?

In encoded-words per RFC 2047: a Subject header like =?UTF-8?Q?Hello=20world?= where the Q signals quoted-printable inside a charset/encoding envelope. The body of a text/plain email commonly declares Content-Transfer-Encoding: quoted-printable directly. This tool decodes the raw body form as well as the Q-fragment form.

How can I recognize quoted-printable text?

Telltale signs: sequences like =C3=A9 or =20 sprinkled through otherwise-readable text, lines ending in a bare =, and line lengths clustering at 76 characters. A body that is 90% printable ASCII with occasional =XX escapes - rather than Base64's uniform four-character alphabet - is almost certainly quoted-printable.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}