URL Encoder / Decoder
Percent-encode and decode text, query parameters and full URLs, with full Unicode support. Everything runs in your browser — your data is never sent anywhere and nothing is stored.
How to use the URL encoder
- Choose Encode or Decode.
- For encoding, pick Component for a single value (like one query parameter) or Full URL to encode a whole address without breaking it.
- Paste your text, click the button, and copy the result.
Common percent-encodings: space is %20, & is %26, ? is %3F,
= is %3D, # is %23, / is %2F and + is %2B.
More PAYATE tools
Frequently asked questions
What is URL encoding?
URL encoding (also called percent-encoding) replaces characters that are unsafe or reserved in a URL with a % followed by two hex digits — for example a space becomes %20 and & becomes %26. It lets you put arbitrary text into a URL, query string or form field without breaking it.
What is the difference between the two encode modes?
Component (encodeURIComponent) encodes almost everything, including / ? : @ & = + $ # — use it for a single value such as one query parameter. Full URL (encodeURI) keeps the characters that make up a valid address, so it is for encoding a whole URL you do not want to break.
Is my data sent anywhere?
No. Encoding and decoding run entirely in your browser — nothing is uploaded to a server and nothing is stored. It is safe for data you would not want to transmit.
Why did decoding fail?
Decoding fails when the input contains a % that is not followed by two valid hex digits (a malformed percent sequence). Check for stray % characters, or that the text was actually URL-encoded in the first place.
Does it handle Unicode and emoji?
Yes. Encoding works on the UTF-8 bytes of the text, so accented letters, non-Latin scripts and emoji round-trip correctly through encode then decode.
When should I URL-encode?
Whenever you put user input or special characters into a query string, a path segment, a redirect parameter, an API request, or an application/x-www-form-urlencoded form body. Encoding prevents the value from being misread as part of the URL structure.