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
- Pick Encode / Decode to percent-encode text, or Query string to build and parse parameters.
- When encoding, leave the full-URL toggle off for a single value (encodeURIComponent), or turn it on for a complete link (encodeURI).
- 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.
- 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
Related Guides
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.
Related Tools
Base64 Encoder / Decoder
Free online Base64 encoder and decoder. Encode text to Base64 or decode Base64 back to plain text, with full Unicode (UTF-8) support - runs entirely in your browser.
JSON Minifier & Formatter
Free online JSON minifier and formatter. Minify JSON to shrink payloads or beautify (pretty-print) JSON with 2-space indentation. Validates as you go - no upload required.
HTML Minifier
Free online HTML minifier. Compress and minify HTML by removing comments and collapsing whitespace - smaller files, faster page loads. Runs in your browser, no upload required.