URL Encoder & Decoder

Percent-encode URLs and query parameters, or decode encoded strings back to plain text. Supports Component and Full URI modes. Output updates as you type.

Type or paste a URL — encoded output appears instantly

Plain Text / URL

Encoded URLread-only

Common Percent-Encoded Characters

%20
!%21
#%23
$%24
&%26
'%27
(%28
)%29
*%2A
+%2B
,%2C
/%2F
:%3A
;%3B
=%3D
?%3F
@%40
[%5B
]%5D
%%25

About this tool

A fast, browser-only URL encoder and decoder with three modes. Encode converts plain text or URLs to their percent-encoded form. Decode converts percent-encoded strings back to plain text. Auto detects which to apply by checking whether the input contains percent-escape sequences.

Two encode scopes are available: Component (encodeURIComponent) encodes all special characters and is ideal for query parameter values and path segments. Full URI (encodeURI) preserves structural URL characters and is suitable for encoding a complete URL. A built-in reference table shows the most common percent-encoded characters at a glance. Use Swap to flip the output back into the input and reverse the operation in one click.

How to use

1

Choose a mode

Select Encode to convert plain text to a percent-encoded URL, Decode to reverse it, or Auto to let the tool detect which is needed from your input.

2

Pick the encode scope

In Encode mode, choose Component (encodeURIComponent) for individual values like search terms, or Full URI (encodeURI) when encoding a complete URL without breaking its structure.

3

Type or paste your input

The encoded or decoded output appears instantly in the right panel as you type. Use the Sample button to load an example URL with spaces and special characters.

4

Copy or swap

Click Copy to copy the output to your clipboard, or Swap to move the output back into the input and flip the mode — useful for round-trip testing.

Frequently asked questions

Common questions about URL encoding, percent-encoding, and when to use each mode.

URL encoding (also called percent-encoding) converts characters that are not allowed or have special meaning in URLs into a safe format. Each unsafe character is replaced by a percent sign followed by two hexadecimal digits — for example, a space becomes %20, an ampersand becomes %26, and a forward slash becomes %2F. This ensures that data can be safely transmitted in a URL without breaking its structure.

encodeURI encodes a complete URL and leaves URI structure characters intact (: / ? # [ ] @ ! $ & ' ( ) * + , ; =). Use it when you want to encode an entire URL without breaking it. encodeURIComponent encodes everything except letters, digits, and - _ . ! ~ * ' ( ) — it is designed for encoding individual query parameter values or path segments where structure characters must be escaped. When in doubt, use Component mode.

Any time you include user-provided text in a URL — especially in query parameters. For example, a search term like 'hello world' must be encoded as 'hello%20world' (or 'hello+world' in form encoding). Without encoding, spaces and special characters break the URL syntax. URL encoding is also required when embedding URLs inside other URLs, building API request strings, or setting redirect URLs.

Both represent a space, but in different contexts. %20 is the standard percent-encoding used in path segments and modern query strings. The plus sign (+) is used in application/x-www-form-urlencoded data (HTML form submissions) and is historically common in query strings. When decoding, this tool handles both: it tries decodeURIComponent first, then falls back to replacing + with a space before decoding.

Yes — switch to 'Full URI' scope in Encode mode. This uses encodeURI, which preserves all characters that have structural meaning in a URL (protocol, slashes, domain, path separators, query syntax). Use 'Component' scope when encoding individual values like a search term, email address, or path parameter that will be embedded inside a larger URL.

Different tools make different choices about which characters to encode. Uppercase vs lowercase hex digits (both are valid: %2F and %2f), whether to encode tilde (~), and whether to use %20 or + for spaces all vary by implementation. All valid percent-encoded representations decode to the same result — the differences are cosmetic. This tool follows the RFC 3986 standard and uses uppercase hex digits.

No. All encoding and decoding happens entirely in your browser using JavaScript's built-in encodeURIComponent, encodeURI, and decodeURIComponent functions. Your URLs and data are never sent to any server. The tool works offline once the page has loaded.