What Is URL Encoding? A Plain-English Explanation
- URL encoding replaces special characters with percent-sign codes so browsers and servers can read them.
- Without encoding, characters like spaces, &, and # break URLs and cause request errors.
- Use the free Mongoose URL Encoder to encode or decode any string instantly — no setup needed.
Table of Contents
URL encoding is the process of converting characters that aren't allowed in a URL into a safe format using percent signs and two-digit hex codes. A space becomes %20, an ampersand becomes %26, and a hash becomes %23.
Every time you send data through a URL — a search query, a form value, an API parameter — it gets URL encoded. Without encoding, the server can't tell where one value ends and the next begins, causing broken links, failed API calls, and confusing errors.
Why URLs Need Special Encoding
URLs are built from a limited alphabet: letters, digits, and a handful of punctuation characters (-, _, ., ~). Everything else is a reserved character with a specific job. The slash / separates path segments. The question mark ? starts the query string. The ampersand & separates parameters.
If your data contains any of those characters — say, a password like p@ss&word — the server reads it as URL structure, not as a value. URL encoding wraps those characters in %XX escape codes so they pass through safely.
Common encoded characters:
- Space →
%20 &→%26=→%3D+→%2B#→%23/→%2F@→%40
Percent Encoding and URL Encoding Are the Same Thing
You'll see both terms used interchangeably — they mean the same thing. The formal name defined in RFC 3986 is percent-encoding because every encoded character starts with a percent sign. Web developers typically call it URL encoding.
The format is always: % followed by two uppercase hexadecimal digits. For example, the character ! has the ASCII/Unicode code point 33, which is 21 in hex, so it encodes as %21.
Non-ASCII characters (like emoji or accented letters) are first converted to UTF-8 bytes, then each byte is percent-encoded. The character é becomes the two-byte sequence %C3%A9.
When to Encode and When to Decode
Encode when you're building a URL and need to include user-supplied data — form inputs, search terms, file names, API values.
Decode when you receive a percent-encoded URL and need to display it in readable form, debug an API response, or extract the original value from a query string.
A common use case: you copy a URL from your browser's address bar and it contains %20 everywhere. Paste it into the decoder to see the original readable string instantly.
Use the Mongoose URL Encoder for both — paste your string, click Encode or Decode, and copy the result.
How to URL Encode or Decode — Free and Instant
The Mongoose URL Encoder is a browser-based tool — nothing is uploaded anywhere. Here's how to use it:
- Paste your text (raw or encoded) into the input box.
- Click Encode to convert special characters to percent-codes, or Decode to reverse the process.
- Copy the output and use it in your URL, API call, or code.
The tool handles all ASCII special characters plus Unicode, so it works for international text, emoji, and multi-byte characters.
Encode or Decode Any URL String — Free
Paste your string into the Mongoose URL Encoder and get the result in one click. No account, no limits.
Open URL EncoderFrequently Asked Questions
Is URL encoding the same as Base64 encoding?
No. URL encoding replaces special characters with percent-codes so they're safe in URLs. Base64 converts binary data into printable ASCII text for email attachments or data URIs. They solve different problems and produce very different output.
Does URL encoding change the meaning of my data?
No. It's a reversible transformation. The encoded and decoded versions represent exactly the same value — the encoding just wraps unsafe characters in a format servers can parse correctly.
Why does a space sometimes become + instead of %20?
In HTML form submissions (application/x-www-form-urlencoded), spaces are encoded as + for historical reasons. In modern URI encoding (RFC 3986), spaces always become %20. The Mongoose URL Encoder uses the RFC 3986 standard — spaces become %20.
Should I URL encode an entire URL or just parts of it?
Encode only the data portions — query parameter values, path values, or form inputs — not the whole URL structure. Encoding the full URL would escape the slashes and question marks that give the URL its meaning.

