%2B in a URL
The percent-encoded plus sign (+).
Short answer
%2B is the percent-encoded plus sign (+). Because many servers decode a + in a query string as a space, a literal plus sign must be written %2B to survive the trip.
- Character
- +
- Percent-encoded
- %2B
- Byte value
- 0x2B = 43
- RFC 3986 class
- sub-delim
- UTF-8 bytes
- 1
Where you will see it
- Phone numbers in query strings: phone=%2B919876543210.
- ISO 8601 timestamps with a time zone offset: 2026-11-04T10:00:00%2B05:30.
- Standard Base64 values, which use + as one of their 64 characters.
What goes wrong
- An unencoded + in a query string is read as a space by form-style parsers such as URLSearchParams, Python's parse_qs, PHP's $_GET and Go's QueryUnescape. In a URL path, + stays a plus.
- encodeURI and the legacy escape() function leave + unencoded, so they do not protect a plus sign inside a value. encodeURIComponent does.
Decoded examples
| Encoded | Decodes to | What it is | Open in the decoder |
|---|---|---|---|
| phone=%2B919876543210 | phone=+919876543210 | A phone number with its leading plus sign. | Open in decoder |
| ts=2026-11-04T10:00:00%2B05:30 | ts=2026-11-04T10:00:00+05:30 | A timestamp whose offset would otherwise lose its plus. | 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.
| Language | Function | Output for + |
|---|---|---|
| JavaScript | encodeURIComponent | %2B |
| JavaScript | encodeURI | kept |
| JavaScript | URLSearchParams | %2B |
| JavaScript | escape (deprecated) | kept |
| Python | quote (default safe='/') | %2B |
| Python | quote (safe='') | %2B |
| Python | quote_plus | %2B |
| C# | Uri.EscapeDataString | %2B |
| C# | WebUtility.UrlEncode | %2B |
| C# | HttpUtility.UrlEncode | %2b |
Questions
Why did my + turn into a space?
In form-encoded data a plus sign stands for a space, so servers decode a raw + as one. To send a real plus sign, encode it as %2B before putting it in a query string.
Does + mean a space in a URL path?
No. In a path a plus is just a plus. Only form-encoded data, such as query strings and form bodies, uses + for a space.
Decode or encode your own text
Paste anything containing %2B. It runs in your browser; nothing is uploaded.
Related characters
%20
space
%20 is the percent-encoded space character.
%25
percent sign
%25 is the percent-encoded percent sign (%).
%3D
equals sign
%3D is the percent-encoded equals sign (=).
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
Tools
URL Encoder
Percent-encode a value, a full URL or form data, with strict RFC 3986 and +/%20 options.
URL Parser
Split a URL into scheme, host, port, path, query and fragment, with checks for common problems.
Query String Parser
Edit query parameters as a table, rebuild the string, or export it as JSON.
Base64 Encode/Decode
Convert text to Base64 and back, including the URL-safe Base64URL alphabet.
HTML Encode/Decode
Escape text to HTML entities and decode entities back to text.
JWT Decoder
Read a JSON Web Token's header and payload and check its expiry.