URL Encoder / Decoder
Browser processing — files never leave your device
Percent-encode text for URLs, or decode %20-style strings back into readable text. Choose component encoding (strict) or full-URL encoding.
Loading tool…
How to use this tool
- Paste the text or URL.
- Pick Encode component, Encode full URL, or Decode.
- Click Convert.
- Copy the result.
About this tool
URLs only allow a limited character set; everything else must be percent-encoded. The important distinction this tool makes explicit: component encoding (encodeURIComponent) escapes characters like /, ? and & — correct for a single query-string value — while full-URL encoding (encodeURI) leaves URL structure intact — correct when encoding a complete address. Using the wrong one is the classic cause of broken links and double-encoded %2520 artifacts. Decoding reverses either form.
Frequently asked questions
- Component encoding vs full-URL encoding — which do I need?
- Encoding a value that goes inside a query string (like a search term): component. Encoding a complete URL while keeping :// and ? working: full URL. When in doubt for a single parameter value, use component.
- Why does my decoded text show %2520?
- That's double encoding — a %20 was encoded again, turning % into %25. Decode twice to recover the original, and fix the pipeline that encodes twice.
- Are + signs spaces?
- Only in the historical form-encoding of query strings. Standard percent-encoding uses %20 for a space; this tool follows the standard and also decodes + as a space in decode mode when it appears in query-style input.
Related tools
Base64 TextConvert text to Base64 and back. Unlike naive implementations, this handles UTF-8 correctly, so emoji and non-Latin text round-trip safely.JSON FormatterPaste minified or messy JSON and get a cleanly indented, readable version. Invalid JSON produces an error with the line and position of the problem.QR Code GeneratorCreate a QR code from any text or URL and download it as PNG or scalable SVG. No watermark, no expiry — the code is generated in your browser.