URL Encoder / Decoder

Percent-encode or decode URLs for safe web transmission.

Missing a tool?

Tell us what you'd like us to build next. We read every suggestion, and your email is optional.

What this tool does

The URL Encoder / Decoder converts characters that aren't allowed in a web address, like spaces, accents and symbols, into percent codes such as %20, and turns those codes back into readable text.

How to use it

  • Encode full URL: for a whole link. It escapes spaces and special characters but keeps the parts that give a URL its structure (: / ? # & =), so the link still works. https://example.com/my page?q=café becomes https://example.com/my%20page?q=caf%C3%A9.
  • Encode a value: for one piece that goes inside a URL, like a search term. It escapes everything, including &, = and /, so the value can't break the URL around it. rock & roll becomes rock%20%26%20roll.
  • Decode: turns percent codes back into text. Tick Treat + as a space for data from web forms, which write spaces as +.

How percent-encoding works

A URL may only use a limited set of characters. Anything else is written as its UTF-8 bytes, each as % plus two hex digits: a space is %20, é is %C3%A9. Letters, digits and - . _ ~ never need encoding.

A worked example

Take the search link https://example.com/search?q=fish & chips&city=Zürich.

  • Encode full URL gives https://example.com/search?q=fish%20&%20chips&city=Z%C3%BCrich. The spaces and the ü are fixed, but the & inside "fish & chips" is kept, so the server reads the search as "fish " plus a broken extra parameter.
  • The right way: encode each value first with Encode a value ("fish & chips" becomes fish%20%26%20chips), then build the link: https://example.com/search?q=fish%20%26%20chips&city=Z%C3%BCrich.

Which characters change?

CharactersEncode full URLEncode a value
Letters, digits and - _ . ~ ! * ' ( )KeptKept
: / ? # @ & = + $ , ;KeptEncoded
Spaces, accents, emoji, [ ] and othersEncodedEncoded

Frequently asked questions

Why do some URLs use + for spaces?

HTML forms send their fields with spaces as + (the "application/x-www-form-urlencoded" format). In the rest of a URL, a space is %20 and + is a real plus sign, which is why the + option is off by default.

Why does my result have %25 in it?

%25 is an encoded % sign: the text was probably encoded already. Decode it first, or encode only the parts that need it.

Is my text sent anywhere?

No. Everything happens in your browser.

What does %2520 mean?

The text was encoded twice: a space became %20, then its % sign was encoded again as %25. Decode it twice, or find the step that encodes twice.

What about domain names with accents?

Domains use a different system called Punycode instead of percent codes: münchen.de becomes xn--mnchen-3ya.de. Browsers convert it automatically; this tool encodes the rest of the address.

Sources: IETF, RFC 3986: Uniform Resource Identifier (URI) Generic Syntax; MDN Web Docs, encodeURI() and encodeURIComponent(). IETF, RFC 3492: Punycode. Last reviewed on SuiteWebTools: October 2026.