What is the URL Encoder/Decoder?
URLs may only contain a limited set of ASCII characters. Anything else, including spaces, accented letters, emoji and reserved characters like &, ? and # when used as data, must be percent-encoded: each byte is written as % followed by two hexadecimal digits. A space becomes %20, and the letter é becomes %C3%A9 because it is two bytes in UTF-8.
There are two common modes. Component encoding (encodeURIComponent) escapes everything except letters, digits and - _ . ! ~ * ' ( ), and is what you want for a single query value. Full URL encoding (encodeURI) leaves the structural characters : / ? # & = alone so an entire address stays valid.
When to use the URL Encoder/Decoder
Use it when building links by hand, debugging redirects that lose parameters, preparing values for an API request, or reading a long tracking URL full of percent signs. It is also handy for decoding search queries copied from server logs, checking why a link with an ampersand or hash sign breaks, and building OAuth redirect URIs that must be encoded exactly. When a parameter value itself contains a URL, encode it as a component first so its own question marks and ampersands are not mistaken for part of the outer address.
How to use the URL Encoder/Decoder
- Select Encode or Decode.
- Choose Component for a single value or Full URL for a whole address.
- Paste the text or URL into the input.
- Read the converted output, which updates as you type.
- Copy it into your code, browser or API client.
Examples
Input: coffee & cream = 5€
Component: coffee%20%26%20cream%20%3D%205%E2%82%AC
Input: https://example.com/search?q=déjà vu
Full URL: https://example.com/search?q=d%C3%A9j%C3%A0%20vuDecoding %E2%9C%93 returns the check mark character.
Common errors and tips
- Encode each query value separately, then join them with
&; do not encode the whole query string as a component. +means a space only inapplication/x-www-form-urlencodedbodies; in a path it is a literal plus sign.- Malformed URI sequence errors mean a
%is not followed by two hex digits; encode literal percent signs as%25. - Double encoding (
%2520) happens when an already encoded string is encoded again. - Never encode the scheme (
https://) as a component.
Privacy: runs entirely in your browser
Query strings often contain tokens or emails; here they are encoded locally and never leave your browser. This tool runs entirely in your browser: nothing you enter is uploaded, stored or logged on our servers, and it keeps working even if you go offline after the page has loaded.
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
/ ? # & =. encodeURIComponent escapes them as well, which is correct for individual parameter values.Why is a space encoded as %20 and sometimes as +?
%20 is valid everywhere. The plus sign represents a space only in HTML form encoding (query strings and POST form bodies).
How are non-English characters encoded?
They are converted to UTF-8 bytes and each byte is written as %XX, so "é" becomes %C3%A9.
What does "URI malformed" mean?
The decoder found a % that is not followed by two hexadecimal digits or an invalid UTF-8 sequence. Fix the stray percent sign or encode it as %25.
Ratings & reviews
–
0 reviews
- 5 star
- 0 reviews (0%)
- 4 star
- 0 reviews (0%)
- 3 star
- 0 reviews (0%)
- 2 star
- 0 reviews (0%)
- 1 star
- 0 reviews (0%)
No reviews yet — be the first to share your experience.
Write a review
Reviews are moderated before they appear.
Related tools
Beautify, minify and validate JSON instantly, with exact line and column for every syntax error.
Use toolEncode text to Base64 or decode Base64 back to readable UTF-8, including URL-safe Base64.
Use toolGenerate random v4 and time-ordered v7 UUIDs in bulk, with one-click copy and format options.
Use toolTest JavaScript regular expressions live, with highlighted matches, capture groups and flag toggles.
Use toolDecode JSON Web Tokens to inspect the header, payload and expiry, all without sending the token anywhere.
Use toolConvert Unix timestamps to readable dates and back, in UTC or your local timezone, in seconds or milliseconds.
Use tool
