Skip to content
Braidbyte

URL encoding explained

Why spaces and special characters are percent-encoded in URLs, and when to use component or full-URL encoding.

Last updated 10 November 2026

Why encoding exists

A URL can contain only a limited set of characters. Spaces, ampersands, equals signs and non-ASCII letters have special meanings or are not allowed, so they are written as a percent sign followed by two hex digits for each UTF-8 byte.

Component or full URL

Use component encoding for a single value, such as a search term placed in a query string. It encodes every reserved character, including the & and = that separate parameters.

Use full-URL encoding for a complete address. It leaves the structural characters alone, so the link still works.

Spaces and plus signs

A space is written as %20 in a URL. A plus sign means a space only inside form data that uses the application/x-www-form-urlencoded format, so do not assume + is a space in every URL.

Avoid double encoding

Encoding a value that is already encoded turns %20 into %2520. If a link shows percent signs where you expect spaces, decode it once and check the result.

Try it with the URL Encoder & Decoder

Everything runs in your browser, and nothing you enter is uploaded.

Open URL Encoder & Decoder