Skip to content
ToolsMinify logo
Developer Tools
Popular

URL Encoder / Decoder

Use this free URL encoder and decoder to convert text and links to percent-encoding (URL encoding) or decode an encoded URL back to readable text.

About URL Encoder / Decoder

Use this free URL encoder and decoder to convert text and links to percent-encoding (URL encoding) or decode an encoded URL back to readable text. Choose between encodeURIComponent - which escapes reserved characters like &, =, ?, and / so a value is safe inside a query string - or encodeURI, which keeps a full URL's structure intact. The same page also has a query-string builder: add key/value pairs, optionally attach a base URL, copy the result, or paste a query or URL to parse it back into fields. Everything runs client-side in your browser, so nothing is uploaded.

How to Use URL Encoder / Decoder

  1. Pick Encode / Decode to percent-encode text, or Query string to build and parse parameters.
  2. When encoding, leave the full-URL toggle off for a single value (encodeURIComponent), or turn it on for a complete link (encodeURI).
  3. In Query string mode, add key/value rows (and an optional base URL). Each value is encoded safely. Paste a query or URL and tap Parse into fields to fill the rows back.
  4. Copy the encoded text, decoded text, or built query from the output box.

URL Encoder / Decoder Examples

Encode a query value

hello world & more becomes hello%20world%20%26%20more

Encode a full URL

https://example.com/a b?q=1 becomes https://example.com/a%20b?q=1 with encodeURI

Build a query string

Rows q=shoes & socks and sort=price become ?q=shoes%20%26%20socks&sort=price

Parse a tagged URL back

https://example.com/search?q=hello%20world&page=2 fills q and page fields; + in form data becomes a space

Read the full guide

How to Use URL Encoder / Decoder: Complete Guide (2026) - 5 min read

Frequently Asked Questions about URL Encoder / Decoder

What is URL encoding (percent-encoding)?
URL encoding, also called percent-encoding, replaces characters that are unsafe or reserved in a URL with a % followed by two hexadecimal digits representing the byte value. For example a space becomes %20 and an ampersand becomes %26. It lets you safely include spaces, symbols, and non-ASCII characters in a URL, query string, or form submission.
What is the difference between encodeURIComponent and encodeURI?
encodeURIComponent escapes almost every reserved character - including & = ? / # : @ + and space - so it is the right choice for a single query-string value or path segment. encodeURI leaves the characters that make up a URL's structure (: / ? & = #) untouched, so it is meant for encoding a complete URL that already contains those delimiters. As a rule: use encodeURIComponent for the parts, encodeURI for the whole.
Which characters get encoded?
Unreserved characters (A-Z, a-z, 0-9, and - _ . ! ~ * ' ( )) are never encoded. Reserved and unsafe characters - spaces, &, =, ?, /, #, %, and any non-ASCII character such as accented letters or emoji - are converted to one or more %XX bytes (UTF-8). encodeURIComponent encodes the reserved delimiters too, while encodeURI preserves them.
How do I build a query string safely?
Switch to Query string mode and add one row per parameter. The builder encodes each key and value with encodeURIComponent before joining them with & and =, so a value like shoes & socks becomes shoes%20%26%20socks and never breaks the query. You can also encode a single value in Encode / Decode mode and paste it yourself.
Can I parse a query string or URL back into fields?
Yes. In Query string mode, paste a bare query (?q=hello+world), a path with a query, or a full URL, then tap Parse into fields. The tool fills the key/value rows, treats + as a space (form-urlencoded), and sets the base URL when you paste a full link. Malformed percent-escapes show a clear error.
Why do I get an error when decoding?
Decoding fails when the input contains a malformed percent-escape - a lone "%" not followed by two hex digits, or an invalid sequence like "%zz". Check that every "%" is followed by a valid two-digit hex code. Text that was never URL-encoded will pass through unchanged unless it contains a stray "%".
Is my data sent to a server?
No. All encoding, decoding, query building, and parse-back happens entirely in your browser using the standard encodeURIComponent, encodeURI, and decodeURIComponent functions. Nothing you paste is uploaded, logged, or stored.