URL Encoder / Decoder
Percent-encode URLs and URI components, or decode them back. Runs entirely in your browser.
About URL Encoding
URL encoding converts characters unsafe in URLs into % followed by two hex digits. A space becomes %20, & becomes %26. Defined in RFC 3986. Read more: URL Encoding: When and How to Use It.
URI Component — use for query param values and path segments. Full URI — preserves structural characters like / ? # :, use for complete URLs. To parse query strings into JSON, try the Query Params to JSON tool. Need to encode binary data instead? Use the Base64 Encoder.
Common Use Cases
- Query parameters — encode values before appending to URLs
- API requests — ensure data is safe in request URLs. Format API responses with the JSON Formatter.
- Form submissions — browsers encode form data automatically
- JWT tokens — tokens in URLs must be URL-encoded. Decode them with the JWT Debugger.
- Internationalisation — encode non-ASCII characters for safe transport
- Convert identifiers for URLs: use the String Case Converter for kebab-case slugs
Common Encoded Chars
%20— space%2B— plus+%2F— slash/%3F— question mark?%26— ampersand&%3D— equals=%23— hash#
How to Use the URL Encoder / Decoder
Paste your text
Type or paste the text or URL you want to process into the input panel on the left.
Choose Encode or Decode
Select Encode to percent-encode characters, or Decode to convert %XX sequences back to plain text.
Pick URI Component or Full URI
Use URI Component for individual query param values. Use Full URI to preserve structural characters like / ? #.
Copy or Swap
Click Copy Output to copy the result, or Swap to feed the output back as the next input and reverse the operation.
Frequently Asked Questions
encodeURI vs encodeURIComponent?
encodeURIComponent encodes everything except letters, digits, and -_.!~*'(). Use it for values. encodeURI preserves URL structure chars like :/?#. Use it for full URLs.
Why does space sometimes become + instead of %20?
In HTML form encoding (application/x-www-form-urlencoded) spaces become +. In standard percent-encoding they become %20. Most APIs prefer %20.
Does this handle Unicode?
Yes. Non-ASCII characters are UTF-8 encoded first, then each byte is percent-encoded. For example € becomes %E2%82%AC.
What is double-encoding?
Encoding an already-encoded string turns %20 into %2520. Decode first if you are unsure whether the input is already encoded.