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.

0 characters · 0 bytes
Result
0 characters · 0 bytes
Transformation breakdown
Input bytes0
Output bytes0
Byte difference0
Change0%
Input0 bytes
Output0 bytes
MetricInputOutput
Characters00
UTF-8 bytes00
Percent-encoded sequences00
Plus signs (+)00

Table of Contents

  1. How URL Encode and Decode Works?
  2. Practical Use Cases
  3. Accuracy and Limitations
  4. Frequently Asked Questions (FAQs)
  5. Cite This tool

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.

Percent change=Output bytes−Input bytesInput bytes×100%

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.


MethodTypical behaviour
URL componentEncodes separators such as ?, & and / using encodeURIComponent.
Whole URLPreserves reserved URL syntax such as :, /, ? and & using encodeURI.
Form dataRepresents 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.

Frequently Asked Questions

%20 represents a space character in percent-encoded text. HTML form submissions may instead represent a space as a plus sign.

An ampersand normally separates query parameters. Encoding it as %26 lets it remain part of a parameter value.

Yes. Characters such as é and 漢 can be represented using their UTF-8 bytes as percent-encoded sequences.

Double encoding applies percent-encoding twice. For example, %20 becomes %2520 after the second pass.

No. Plus signs represent spaces in form-encoded query data, but a literal plus is not universally interpreted as a space in other URL components.

Cite This tool