%url-decoder.net

%20 in a URL

The percent-encoded space.

Short answer

%20 is the percent-encoded space character. A URL cannot contain a literal space, so a space is written as a percent sign followed by its byte value in hexadecimal, 20. In form-encoded query strings a space can also appear as a plus sign.

Character
space
Percent-encoded
%20
Byte value
0x20 = 32
RFC 3986 class
unsafe
UTF-8 bytes
1

Where you will see it

  • File names and paths with spaces: /reports/Q3%20summary.pdf.
  • Query values built with encodeURIComponent, Python's quote or Uri.EscapeDataString.
  • Links copied from a browser's address bar, which stores spaces as %20.

What goes wrong

  • %20 and + are not interchangeable everywhere. A plus means a space only in form-encoded data, such as HTML form submissions and URLSearchParams output. In a URL path, a plus is a literal plus sign, so a path must use %20.
  • Seeing %2520 means the % in %20 was encoded a second time. Decode once more to get the space, then fix the code that encodes an already-encoded value.

Decoded examples

EncodedDecodes toWhat it isOpen in the decoder
my%20file.pdfmy file.pdfA file name containing a space.Open in decoder
q=fish%20and%20chipsq=fish and chipsA query parameter with spaces in its value.Open in decoder
a%2520ba%20bDouble-encoded: one decode gives a%20b, a second gives a b.Open in decoder

How each language encodes a space

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 space
JavaScriptencodeURIComponent%20
JavaScriptencodeURI%20
JavaScriptURLSearchParams+
JavaScriptescape (deprecated)%20
Pythonquote (default safe='/')%20
Pythonquote (safe='')%20
Pythonquote_plus+
C#Uri.EscapeDataString%20
C#WebUtility.UrlEncode+
C#HttpUtility.UrlEncode+

Questions

Is %20 the same as a plus sign?

Only in form-encoded query strings, where a plus sign is read as a space. Everywhere else, including URL paths, a plus is a literal plus and a space must be %20. When unsure, use %20: it is valid in every part of a URL.

Why does my URL show %20 instead of spaces?

URLs may only contain a limited set of ASCII characters, and a space is not one of them. Browsers and libraries replace each space with %20 so the address stays unambiguous. Pasting the link into the URL decoder shows the original text.

Decode or encode your own text

Paste anything containing %20. 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