%url-decoder.net

%25 in a URL

The percent-encoded percent sign (%).

Short answer

%25 is the percent-encoded percent sign (%). Because % starts every percent-encoded sequence, a literal percent sign in data has to be written %25, as in 100%25. Seeing %25 before two more hex digits usually means double encoding.

Character
%
Percent-encoded
%25
Byte value
0x25 = 37
RFC 3986 class
unsafe
UTF-8 bytes
1

Where you will see it

  • Literal percent signs in text: discount=100%25.
  • Double-encoded values: %2520 is %20 with its % encoded again.
  • Output of every encoding function, which all encode % first.

What goes wrong

  • %25 followed by two hex digits (%2520, %253A, %252F) almost always means a value was encoded twice. Decode all layers in the tool to see each pass, then fix the code that encodes an already-encoded value.
  • A bare % that is not followed by two hex digits is invalid. decodeURIComponent throws URIError: URI malformed for it. Writing a literal percent sign as %25 avoids the error.

Decoded examples

EncodedDecodes toWhat it isOpen in the decoder
discount=100%25discount=100%A literal percent sign.Open in decoder
a%2520ba%20bDouble-encoded space: a%20b after one decode, a b after two.Open in decoder

How each language encodes %

Outputs below come from running each function, not from documentation. “Kept” means the function leaves the character as it is. Compare every character across every function.

LanguageFunctionOutput for %
JavaScriptencodeURIComponent%25
JavaScriptencodeURI%25
JavaScriptURLSearchParams%25
JavaScriptescape (deprecated)%25
Pythonquote (default safe='/')%25
Pythonquote (safe='')%25
Pythonquote_plus%25
C#Uri.EscapeDataString%25
C#WebUtility.UrlEncode%25
C#HttpUtility.UrlEncode%25

Questions

What does %2520 mean?

It is a space that was percent-encoded twice. The first pass turned the space into %20; the second pass encoded the percent sign as %25. Decode twice to read it.

How do I write a literal percent sign in a URL?

Write it as %25. For example, 100% becomes 100%25. A bare % makes many decoders fail with a URI malformed error.

Decode or encode your own text

Paste anything containing %25. It runs in your browser; nothing is uploaded.

Related characters

All percent-encoded characters · Full percent-encoding table · What is URL encoding?

Behaviour checked against RFC 3986, the WHATWG URL Standard and MDN. Updated November 4, 2026