Output will appear here...
Parsed Query Parameters
| # | Key | Value | Raw 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.
| Character | Encoded | Name | Notes |
|---|---|---|---|
| (space) | %20 or + | Space | %20 in paths, + in form data (application/x-www-form-urlencoded) |
| ! | %21 | Exclamation | Not encoded by encodeURI, encoded by encodeURIComponent |
| # | %23 | Hash | Fragment identifier — must encode in query values |
| $ | %24 | Dollar | Reserved but rarely used in URLs |
| & | %26 | Ampersand | Query parameter separator — always encode in values |
| ' | %27 | Apostrophe | Not encoded by encodeURIComponent — can cause issues |
| + | %2B | Plus | Interpreted as space in query strings — always encode |
| , | %2C | Comma | Reserved; safe in some contexts but encode to be safe |
| / | %2F | Slash | Path separator — encode in query values, not in paths |
| : | %3A | Colon | Scheme separator (http:) — encode in query values |
| = | %3D | Equals | Key-value separator — always encode within values |
| ? | %3F | Question mark | Query string start — encode in values |
| @ | %40 | At sign | Used in email addresses in URLs |
| [ | %5B | Left bracket | Used in IPv6 addresses and array params |
| ] | %5D | Right bracket | Used 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.