URL Encoder/Decoder
Safely encode or decode URL components.
Recommended Tools
Hand-picked utilities you might find useful
Encoding and Decoding URLs Safely
Overview
URLs can only contain a limited set of characters, so spaces, symbols, and non-English letters must be percent-encoded (like a space becoming %20) to travel safely in a link or query string. A URL encoder/decoder converts text to and from this format. This tool encodes or decodes instantly in your browser, which is handy for building query parameters, debugging links, or reading an encoded string someone sent you.
How to Use (Step by Step)
- 1
Paste your text or URL
Enter the string you want to encode or the percent-encoded string you want to decode.
- 2
Choose encode or decode
Pick the direction. The result appears instantly in the output field.
- 3
Copy the result
Copy the encoded or decoded string into your link, code, or API request.
How It Works
Encoding replaces unsafe characters with a percent sign followed by their hexadecimal byte values (UTF-8). Decoding reverses that, turning %20 back into a space and %C3%A9 back into é. The tool applies the standard encodeURIComponent/decodeURIComponent rules used across the web, and does it locally so your text — which may contain tokens or personal data — never leaves the page.
When to Use This
Building a query string with values that contain spaces, ampersands, or slashes. Debugging why a link breaks when it hits a special character. Decoding an encoded URL from a log, email, or redirect to see the real destination. Preparing parameters for an API call. Encoding non-ASCII text (accents, other scripts) for use in a URL. Safely embedding one URL inside another as a parameter.
Frequently Asked Questions
Encoding a full URL preserves characters like : / ? that give it structure, while encoding a component (a single parameter value) escapes those too. Use component encoding for individual values you insert into a query string.
Important Notes
Double-encoding is a common bug — encoding an already-encoded string turns %20 into %2520. Decode first if you're unsure of the current state.