Encode and decode URLs with percent-encoding, compare encoding methods, and parse query strings into parameters — all in your browser.

Plain Text
Encoded Output
Output will appear here...
Encode
Input:0 chars
Output:0 chars
Encoded:0 chars
Overhead:

Parsed Query Parameters

#KeyValueRaw Value

How to Use This Tool

Step 1
Choose your mode
Encode converts text to percent-encoded format. Decode reverses it. Parse URL extracts query string parameters into a table.
Step 2
Pick the encoding method
Component mode (encodeURIComponent) encodes everything — use for query values. Full URI mode (encodeURI) preserves URL structure characters.
Step 3
Enter your input
Type or paste text. Output updates instantly. The stats bar shows how many characters were encoded and the size overhead.
Step 4
Copy or swap
Copy the output, or use Swap to flip input ↔ output and toggle between encode/decode for quick roundtrip testing.

Common URL-Encoded Characters

Quick reference for the most frequently encountered percent-encoded characters. Bookmark this page for fast lookups when debugging URLs and query strings.

CharacterEncodedNameNotes
(space)%20 or +Space%20 in paths, + in form data (application/x-www-form-urlencoded)
!%21ExclamationNot encoded by encodeURI, encoded by encodeURIComponent
#%23HashFragment identifier — must encode in query values
$%24DollarReserved but rarely used in URLs
&%26AmpersandQuery parameter separator — always encode in values
'%27ApostropheNot encoded by encodeURIComponent — can cause issues
+%2BPlusInterpreted as space in query strings — always encode
,%2CCommaReserved; safe in some contexts but encode to be safe
/%2FSlashPath separator — encode in query values, not in paths
:%3AColonScheme separator (http:) — encode in query values
=%3DEqualsKey-value separator — always encode within values
?%3FQuestion markQuery string start — encode in values
@%40At signUsed in email addresses in URLs
[%5BLeft bracketUsed in IPv6 addresses and array params
]%5DRight bracketUsed in IPv6 addresses and array params

Frequently Asked Questions

What is URL encoding (percent-encoding)?
URL encoding replaces characters that are unsafe or have special meaning in URLs with a percent sign followed by two hex digits representing the byte value. For example, a space becomes %20, an ampersand becomes %26, and a Japanese character like あ becomes %E3%81%82 (its three UTF-8 bytes). This ensures URLs remain valid and unambiguous regardless of what data they carry.
What is the difference between encodeURI and encodeURIComponent?
encodeURI() is designed for encoding a complete URL. It preserves characters that have structural meaning in URLs: : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Use it when you have a full URL and want to make it safe without breaking its structure. encodeURIComponent() encodes everything except A-Z a-z 0-9 - _ . ~. Use it for encoding individual values — like a search query or parameter value — that will be placed inside a URL.
Why does + sometimes mean space in URLs?
The application/x-www-form-urlencoded format (used by HTML form submissions) encodes spaces as + instead of %20. This is a legacy convention from early web forms. In the URL path and fragment, spaces should always be %20. Most server-side frameworks handle both, but when building URLs manually, use %20 to be safe.
Which characters are safe in URLs without encoding?
RFC 3986 defines "unreserved characters" that never need encoding: uppercase and lowercase letters (A-Z, a-z), digits (0-9), hyphen (-), underscore (_), period (.), and tilde (~). Everything else is either reserved (has a special URL meaning) or must be percent-encoded when used in URL components.
Is my data sent to a server?
No. All encoding, decoding, and URL parsing happens entirely in your browser using JavaScript. Your data never leaves your device.