Developer Tools

URL Encoding Explained: When and How to Percent-Encode URLs

📅 Published June 17, 2026 🕒 Last Updated: July 2026 ⏱ 7 min read ✅ Reviewed by Rashid Amin, Founder of NexaTools

URLs can only safely contain a limited set of characters. Spaces, ampersands, question marks, and many other everyday characters have special meaning inside a URL's structure, and including them unencoded can break links, corrupt query parameters, or cause a request to fail entirely. URL encoding solves this by converting unsafe characters into a percent-escaped format that any browser or server can interpret correctly.

This guide explains how URL encoding works, when it is actually necessary, and how to use the free NexaTools URL Encoder to safely prepare text for use inside a URL.

What Is URL Encoding?

URL encoding, also called percent-encoding, converts characters that are not allowed or that have special meaning in a URL into a percent sign followed by two hexadecimal digits representing that character. A space, for example, becomes %20. This allows arbitrary text, including symbols, punctuation, and non-English characters, to be safely embedded inside a URL without breaking its structure or being misinterpreted by the server.

When You Need to URL Encode Text

Query String Parameters
Any user-provided text passed as a query parameter, such as a search term, needs encoding if it contains spaces, symbols, or special characters like & or #.
Redirect URLs
When passing a full URL as a parameter inside another URL, such as a redirect-after-login link, the inner URL must be encoded so its own characters do not conflict with the outer URL's structure.
Non-English Text in URLs
Characters outside basic English letters and numbers, including accented characters and non-Latin scripts, need to be percent-encoded to travel safely through URL-based systems.

How to URL Encode Text with NexaTools

  1. Open the NexaTools URL Encoder
  2. Paste the text or URL you need to encode
  3. Click encode to convert unsafe characters to percent-encoded format
  4. Copy the encoded result and use it in your link or query string
✦ Encode Only What Needs Encoding
Encode individual parameter values, not an entire well-formed URL. Encoding a full URL including its own slashes and question mark will break it, since those characters have valid structural meaning at the top level.

Characters That Commonly Need Encoding

  • Spaces become %20, or sometimes a plus sign depending on context
  • Ampersands (&) become %26, since unencoded ampersands separate query parameters
  • Question marks (?) become %3F, since an unencoded one starts the query string
  • Hash symbols (#) become %23, since an unencoded one starts a URL fragment
  • Forward slashes (/) become %2F when they are part of a value rather than a path separator
  • Plus signs (+) become %2B, since an unencoded plus sign can be interpreted as a space in some contexts

Component Encoding vs Full URL Encoding

Most programming languages provide two related functions for this: one that encodes a single component, like a query parameter value, and one that encodes a full URI while preserving its structural characters like slashes and colons. Using the wrong one is a common source of bugs mistakenly using component encoding on a full URL will mangle it into something unusable.

Decoding an Already-Encoded URL

If you have received a URL or parameter that is already percent-encoded and need to read the original text, use the companion URL Decoder to reverse the process and see the plain text value.

URL Encoding vs Base64 Encoding

These solve different problems and are not interchangeable. URL encoding specifically escapes characters that conflict with URL syntax. Base64 encoding converts arbitrary binary data into text-safe characters for reasons unrelated to URL structure, such as email attachments or embedding images. If you are encoding binary data rather than preparing text for a URL, use the Base64 Encoder instead.

Common Mistakes to Avoid

  • Double-encoding a value running an already-encoded string through the encoder again turns a single %20 into %2520, which most servers will not decode back correctly.
  • Encoding the whole URL instead of just the value this escapes structural characters like :// and breaks the link entirely.
  • Forgetting to encode before building a query string manually concatenating raw user input into a URL string is one of the most common sources of broken links.

Frequently Asked Questions

Why does my URL break when it contains a space?

Unencoded spaces are not valid in most URL contexts and are often silently truncated or misinterpreted by browsers and servers. Encoding the space as %20 fixes this.

Should I encode the entire URL or just the parameter values?

Encode only the individual values being inserted into a URL, not the URL's own structural characters like slashes, colons, or the question mark that starts the query string.

What is the difference between %20 and a plus sign for spaces?

Both can represent a space depending on context. %20 is standard percent-encoding used everywhere. A plus sign specifically represents a space only within query string parameters in some encoding conventions.

Is URL encoding reversible?

Yes, fully. Use a URL Decoder to convert a percent-encoded string back to its original plain text form with no data loss.

🛠️ Encode Your URL Free

No signup, no limits. Convert text into safe, percent-encoded URL format instantly, right in your browser.

⚡ Open URL Encoder