Quick answer

Percent-encoding represents a byte with a percent sign and two hexadecimal digits, so a space is %20. In HTML form encoding and many query-string parsers, a plus sign is an alternate representation of a space. In a general URL path, plus usually means a literal plus.

How to do it

  1. Identify whether you are encoding a full URL, one component, or form data.
  2. Encode individual values before inserting them into a query or path.
  3. Decode with rules that match the producer instead of replacing plus signs everywhere.

Encode components, not whole syntax

Applying a component encoder to an entire URL escapes separators such as colon, slash, question mark, and ampersand. Build the URL from separately encoded values or use the platform URL and URLSearchParams APIs to preserve structure.

Unicode becomes UTF-8 bytes

Non-ASCII characters are first represented as UTF-8 bytes and each byte is percent-encoded. That is why one visible character may produce several percent sequences. Decoding with the wrong character encoding can create replacement symbols or mojibake.

Common mistakes to avoid

  • Treating every plus sign as a space.
  • Double-encoding an existing percent sequence.
  • Concatenating untrusted query values without component encoding.

Try the related tool

Use QRFoundry directly in your browser. Tool inputs and uploaded files are processed on your device.

Open URL Encoder & Decoder