URL Encode/Decode
Percent-encode or decode URL strings in your browser, with separate full-URL and component modes for correct query string and path handling.
What it does
- Percent-encode and decode in both directions
- Full URL mode and component mode
- Handles spaces, ampersands, and special characters correctly
- Runs client-side with no data sent to any server
Spaces, ampersands, and special characters in a query string will corrupt parameters if left un-encoded. Paste the raw value into this URL encoder and decoder to get a percent-encoded string, or decode a mangled parameter back to readable form before filing a bug. Both directions run instantly in the browser.
What URL encoding (percent-encoding) is
URLs may only contain a limited set of ASCII characters, so anything outside that set has to be percent-encoded. Each disallowed byte is replaced by a percent sign followed by its two-digit hexadecimal value, which is why a space becomes %20 and an ampersand becomes %26. This scheme, defined in RFC 3986, lets you carry arbitrary text, including spaces, accented letters, and emoji, safely inside a link.
Reserved characters and why context matters
Some characters are reserved because they have structural meaning in a URL: / ? # [ ] @ ! $ & ' ( ) * + , ; = and the percent sign itself. An ampersand separates query parameters, a question mark begins the query string, and a hash marks a fragment. If one of those characters is part of your data rather than the URL structure, it must be encoded so it is not misread. That is the difference between the two modes here:
- Component mode — encodes a single piece such as one query value or path segment, escaping reserved characters like
&and=so they stay part of the value. - Full URL mode — preserves the overall structure of a complete address while encoding only what needs it, so the slashes and the query separator keep working.
Common use cases
- Building safe links — encode user input, search terms, or filenames before placing them in a query string.
- Debugging APIs — decode a logged request URL to read the real parameter values, or encode a value to reproduce a failing call.
- Fixing double-encoding — spot values that were encoded twice (a stray
%2520instead of%20) and decode them back step by step.
Privacy: encoding happens locally
URLs often carry tokens, search queries, or personal identifiers. This tool encodes and decodes entirely client-side using a Rust module compiled to WebAssembly, so the text you paste is never uploaded, logged, or stored on any server. It works offline once the page is loaded.
Related tools
For escaping characters in HTML markup rather than URLs, use the HTML entity encoder and decoder. When you need to encode binary or arbitrary data as text, the Base64 encoder and decoder is the right choice, and the JWT decoder pairs well when a percent-encoded token appears in a query string.