URLs can only safely contain a limited set of characters — letters, digits, and a small handful of punctuation marks — which means spaces, special characters, and non-Latin text all need to be encoded into a URL-safe format before they can travel reliably through a link, query string, or API request. This tool encodes and decodes URLs instantly, entirely in your browser, with nothing you paste ever sent to a server.
Why URL encoding exists
A raw space in a URL, a special character like & or ? used somewhere other than its reserved purpose, or non-Latin characters can all break a link or cause a server to misinterpret where one part of the URL ends and another begins. URL encoding (also called percent-encoding) replaces problematic characters with a percent sign followed by their hexadecimal code — a space becomes %20, for instance — producing a string that's guaranteed to travel safely through any URL-handling system.
How to use it
- Paste text or an existing URL into the input.
- Choose whether to encode (convert special characters to percent-encoded form) or decode (convert percent-encoded text back to readable form).
- Copy the result instantly.
Common situations where this matters
- Building query strings — encoding a user-provided search term or parameter value before appending it to a URL, so special characters in that value don't break the URL's structure.
- Debugging a broken link — decoding a percent-encoded URL to read what it actually contains, useful when troubleshooting a redirect or tracking link that isn't working as expected.
- Sharing links with special characters — a search result URL or a link containing non-Latin text often needs encoding to paste reliably into an email or chat message without breaking.
- API development — many APIs require query parameters to be properly URL-encoded, and a malformed request due to unencoded special characters is a common source of confusing API errors.
Frequently asked questions
What's the difference between encoding a full URL versus a URL component? Encoding a full URL leaves structural characters like :, /, and ? untouched since they define the URL's structure; encoding a single component (like a query parameter value) encodes those characters too, since they'd otherwise be misinterpreted as part of the URL's structure rather than as data.
Why do I sometimes see a plus sign instead of %20 for spaces? Some encoding contexts (particularly form submissions) use + for spaces instead of %20 — both are valid depending on context, and this is a common source of confusion when debugging.
Is my data uploaded anywhere? No — encoding and decoding happen entirely locally in your browser.
Can encoding break a URL that already works? Encoding characters that don't need encoding is generally harmless, but double-encoding an already-encoded URL (encoding it twice) can break it — check whether your input is already encoded before encoding it again.