How to decode URL text correctly

URL decoding converts percent-encoded UTF-8 bytes back to text, but components, whole URLs, and form values follow different rules.

Open the URL Decoder

What percent-decoding does

A percent escape contains a percent sign followed by two hexadecimal digits. For example, %20 represents a space byte in UTF-8 data. Non-ASCII characters usually require several escapes because their UTF-8 form uses multiple bytes.

caf%C3%A9 → café

Decoding should happen once unless the data contract explicitly contains nested encoding.

How to decode URL text

  1. Identify whether the input is one component, a whole URL, or a form value.
  2. Paste the encoded text.
  3. Choose the matching decoding mode.
  4. Select Decode URL text.
  5. Review the plain-text result and any invalid-escape error.

The ToolPixels decoder never opens the result as a URL. Incomplete escapes and invalid UTF-8 are reported rather than silently replaced.

Choose the correct mode

ModeBehavior
URL componentDecodes all percent escapes and leaves literal + unchanged
Whole URLPreserves escapes for reserved delimiters such as %2F and %3F
Form valueConverts + to a space before percent-decoding

Why plus signs are confusing

A literal plus sign is not a universal encoding for space. That convention belongs to application/x-www-form-urlencoded form data. In a normal URL component, + may mean an actual plus.

For example, component mode keeps C%2B%2B as C++. Form mode turns first+last into first last.

Common decoding errors

  • An escape is incomplete, such as %2.
  • Hex digits are invalid, such as %GG.
  • The decoded byte sequence is not valid UTF-8.
  • Whole-URL mode was used for a single query value.
  • A value was decoded twice and reserved characters were restored too early.

Open the ToolPixels tool

Decode URL components, whole URLs, or form values once and inspect the result as local plain text.

Decode URL text