URL Encode and Decode
Convert text into URL-safe strings or decode escaped content using component, whole-URL, and form-data methods. Select up to five processing passes, compare character and UTF-8 byte counts, inspect escape sequences, and export results locally.
| Metric | Input | Output |
|---|---|---|
| Characters | 0 | 0 |
| UTF-8 bytes | 0 | 0 |
| Percent-encoded sequences | 0 | 0 |
| Plus signs (+) | 0 | 0 |
Table of Contents
Highlights
- Encode or decode URL text instantly
- Choose component, whole-URL or form-data formatting
- Apply one to five encoding or decoding passes
- Compare characters, UTF-8 bytes and escape sequences visually
- Copy results or export TXT, JSON and CSV files
How URL Encode and Decode Works?
URL encoding represents selected characters using a percent sign followed by two hexadecimal digits for each UTF-8 byte. For example, a space becomes %20, while an encoded UTF-8 character may require several percent sequences. Decoding reverses valid sequences and reconstructs the original text.
This percentage measures how the UTF-8 byte length changes, not the number of encoded characters. A zero-byte input is treated specially: its change is shown as 0% when the output is also empty. Choose one to five passes to repeatedly apply the same operation to the previous result.
| Method | Typical behaviour |
|---|---|
| URL component | Encodes separators such as ?, & and / using encodeURIComponent. |
| Whole URL | Preserves reserved URL syntax such as :, /, ? and & using encodeURI. |
| Form data | Represents spaces as + and percent-encodes characters such as ! and ~; decoding converts + to spaces. |
The results also count Unicode code-point characters, UTF-8 bytes, valid-looking %HH sequences, and plus signs, with a visual input-versus-output byte comparison.
Practical Use Cases
Web developers: Escape an individual query parameter before inserting it into a URL, without treating its internal ampersands or question marks as URL structure.
API testers: Decode copied request parameters to inspect human-readable values, or use multiple passes to investigate text that was encoded more than once.
Content editors: Encode titles, search terms and non-ASCII text for use in links, then compare the encoded result with the original.
Form developers: Examine how form-style values use plus signs for spaces and differ from the usual URL-component representation.
Technical support teams: Investigate malformed percent escapes and compare input/output sizes when troubleshooting links submitted by users.
Accuracy and Limitations
Encoding and decoding use the browser’s native JavaScript URI functions and UTF-8 byte counting, so correctly formed inputs are processed deterministically. Invalid percent sequences, malformed UTF-8 and unpaired Unicode surrogates cause an error. Whole-URL decoding deliberately preserves certain reserved escapes; form-style decoding treats every literal + as a space. Repeated passes can alter text that already contains percent escapes. Character counts use Unicode code points rather than visual grapheme clusters, and the tool does not validate whether a complete URL is reachable or syntactically valid.