URL Percent-Encoder

Percent-encode special characters in a URL or URI component

Ad placeholder (leaderboard)

What percent-encoding does

URLs may only contain a limited set of characters. Percent-encoding (URL encoding) lets you safely put spaces, accented letters, emoji and reserved punctuation into a URL by replacing them with % followed by the two hex digits of each UTF-8 byte. This tool encodes and decodes in both directions, with a scope switch for the two situations that matter.

How it works

There are two encoding rules, matching the two JavaScript builtins:

Component (encodeURIComponent): escapes everything except
  A-Z a-z 0-9 - _ . ! ~ * ' ( )
  so & = ? / # : @ are all percent-encoded.

Full URI (encodeURI): additionally leaves the reserved
  delimiters ; , / ? : @ & = + $ # untouched
  so a complete URL keeps working.

For any character outside the safe set, the tool first encodes it to UTF-8 and then percent-encodes each resulting byte. Decoding reverses this, reading %XX triplets, reassembling the UTF-8 bytes, and rendering the original characters.

Example and notes

The query value Geo Café & co should use Component scope, producing Geo%20Caf%C3%A9%20%26%20co — note the ampersand becomes %26 so it is not mistaken for a parameter separator, and the é expands into two bytes %C3%A9. If you instead encode an entire URL such as https://x.com/a b?q=1, use Full URI scope so the ://, /, ? and = are preserved. Decoding rejects malformed escapes like %2 or %ZZ with a clear error rather than silently corrupting the text.

Ad placeholder (rectangle)