A plus isn’t always a space.
Component mode keeps + as a plus. Form mode reads it as a space. Choose the format your source expects.
Encode or decode URL components, full URIs and form values. Inspect query parameters and decoding layers in your browser. Free, no sign-in.
Paste a value or try an example.
Your result will appear here.
Each step uses the selected context. Your original input stays unchanged.
In Form value mode, decoding another layer converts a newly revealed + into a space. Continue only when that matches your source.
Percent triplets represent bytes, not necessarily whole characters. Several UTF-8 bytes can form one character.
Processing stays on your device. A signed-in account receives Converter input only when you press Save conversion. Inspector URLs are never saved. Share sends only the current Converter result to an app you choose. How this works ↗
Preparing offline shell…Checking your account…
Only a completed Converter input and its options are saved when you press Save conversion. Results are recalculated when opened. URL Inspector sources are never saved.
Component mode keeps + as a plus. Form mode reads it as a space. Choose the format your source expects.
Decode a nested value one layer at a time. Review, go back, or copy any successful step.
Inspect duplicate keys, empty values, and flags without changing the original query string.
Open URL Inspector →decodeURI preserves encoded URI delimiters such as /, ?, and #. To decode a single value containing these characters, choose Component value.
No. The inspector reads text locally. It does not visit a URL, follow redirects, or check its reputation.
No. Percent encoding is reversible and provides no confidentiality. Avoid including passwords and access tokens in URLs.
Split on raw & and the first raw = before decoding. Encoded delimiters stay inside their values.
| # / type | Raw key → decoded | Raw value → decoded |
|---|
No query parameters found.
Inspect a URL or raw query to see every value clearly.
No page is opened. No request is sent to that URL.
Choose what the value represents before encoding or decoding it.
One query key, query value, or path segment. A space becomes %20; a literal plus becomes %2B. Default behavior follows encodeURIComponent / decodeURIComponent.
Keeps URI separators such as : / ? & =. Follows encodeURI / decodeURI. This is not a URL builder, validator, or repair tool.
One form key or value, not a whole query. A space becomes +; a literal plus becomes %2B. On decode, raw + is replaced with space before decoding percent escapes.
The first decode counts as layer 1. Each additional step is explicit, with a maximum of five. Stop when the value matches your task. A literal percent can be valid text; it is not a reason to keep decoding. Reset steps clears the chain without changing your source. Switching context starts a new chain.
A malformed percent escape and invalid UTF-8 are different errors. Positions use UTF-16 code units, starting at 1, with a line and column. “Show error in input” selects the reported location. The tool never silently repairs the source or substitutes replacement characters.
Only complete HTTP(S) URLs or explicit raw query strings are supported. Query parameters preserve duplicates, empty segments, flags without an equals sign, and empty values. Raw query mode accepts one optional leading ?. Everything else, including #, is literal query content. The structure panel is a parsed view; the original source is never rewritten.
Share passes only the current Converter result to the app you choose. If browser sharing is unavailable, it copies the result for you to paste into a message. No content is added to the page URL or saved to your account by sharing. Review a Full URI result for tokens or private data before sharing.
Visit once online and wait for “Offline shell ready.” Conversion and inspection can then use cached app files. Installation depends on your browser, and browser storage can be cleared. The full implementation spec is not part of the offline cache.
Open converter →Conversion and inspection run in your browser. Account storage is optional and explicit.
Input, results, and decoding layers stay in the page’s memory. The tool does not fetch pasted URLs or render them as links or HTML.
Context and display preferences may be stored locally. Text is not stored in localStorage, IndexedDB, cache, or the address bar.
While signed in with Google, pressing Save conversion sends the Converter input and selected options over HTTPS to your account. The server encrypts this content. Inspector URLs are never saved. Titles are readable account metadata.
Tokens, email addresses, and signed links can appear inside a URL. Avoid saving sensitive URLs. The inspector indicates that URL credentials exist without repeating them in its structure panel; they remain visible in your original input.
Share passes only the current Converter result to your browser’s share feature and the receiving app you choose. If browser sharing is unavailable, the result is copied for you to paste. The recipient app may store or forward shared content. Download creates a local .txt file. Clear removes the current workspace data but cannot erase system clipboard history or downloaded files. The tool does not automatically read your clipboard.
Anyone can decode a percent-encoded value. The inspector does not verify a destination’s identity or safety.
Hosting still receives page requests. Extensions, malicious scripts, and compromised devices may access page data. Read our website Privacy Policy.
Use the free URL encoder to prepare one query key, query value or path segment. Choose Component value and Encode. For example, hello world & café becomes hello%20world%20%26%20caf%C3%A9. Encoding the ampersand prevents it from acting as a separator when the value is inserted into a query string. Copy, download or share the complete result after it appears. This tool converts a value; it does not assemble a new URL for you.
Choose Decode and paste the encoded text into the Converter. In Component value mode, hello%20world becomes hello world and caf%C3%A9 becomes café. Percent escapes represent UTF-8 bytes, so one character can use several %XX triplets. Malformed escapes such as %2G and invalid UTF-8 produce an error with a position; the tool does not silently repair the input. Decode one value at a time when you need separators such as %2F to become literal characters.
Component value follows JavaScript encodeURIComponent and decodeURIComponent behavior for an individual value. Full URI follows encodeURI and decodeURI behavior: it leaves structural characters such as :, /, ? and & in place and preserves escaped delimiters while decoding. Use Full URI only when those separators already belong to the URI. It does not validate, repair or rebuild a URL. Form value handles one key or value under application/x-www-form-urlencoded rules; it is not a whole-query editor.
Component value encodes a space as %20 and a literal plus as %2B. Form value encodes a space as + and a literal plus as %2B, so a b+c becomes a+b%2Bc. When decoding, Component value keeps a raw + as +, while Form value reads a raw + as a space. Choose the context used by your source before decoding a query value. The optional percent-token explanation shows the bytes without changing the copied result.
URL Inspector accepts a complete HTTP(S) URL or a raw query string. It shows the parsed URL structure and each query parameter in original order, including duplicate keys, flags, empty values and empty segments. It splits on raw & and the first raw = before decoding each key and value, so an encoded delimiter stays inside its value. A malformed cell remains visible beside valid cells. Inspector is read-only: it never visits the pasted URL, follows a redirect, checks reputation or edits the source.
If a value has been encoded twice, the first Decode result can still contain percent escapes: %2520 becomes %20, then a second explicit step becomes a space. Select Decode next layer to inspect exactly one more result, up to five successful steps. Back and Reset help you review the chain. The original input remains available, and the tool does not guess when to stop or automatically decode all layers.
Copy result and Share result use the complete current Converter output, even if its preview is shortened. Share passes that output to the receiving app you choose; if browser sharing is unavailable, it copies the output for manual pasting. URL Inspector sources are not shared. A Full URI result may contain tokens or credentials, so review it before sharing. A Google account is optional: only a signed-in user's explicit Save conversion sends a completed Converter input and options to encrypted account storage. Results are recalculated when reopened. Inspector sources are never saved to the account.
Conversion and inspection run in a browser worker. Free use requires no sign-in, and typing does not upload text, save it automatically, or put it in the page address. Converter input is limited to 1 MiB of UTF-8; Inspector accepts up to 64 KiB and 200 raw query segments. After one online visit, the app shell may work offline, while account Save needs a connection. URL encoding is reversible formatting, not encryption or a URL safety check.
Open the Converter, choose Encode and Component value, then enter one key, value or path segment. Copy the percent-encoded result and insert it where that component belongs in your URL.
Choose Decode, select the context used to encode the text, and paste the value. Component value decodes escaped delimiters inside a single value; Full URI keeps URI separators protected. Invalid percent escapes or UTF-8 return an error.
Yes. Encoding, decoding, decoding layers and the read-only URL Inspector are free without sign-in. Google sign-in is optional only for saving selected Converter inputs.
The Full URI mode follows encodeURI and leaves structural separators such as /, ? and & in place. Component value follows encodeURIComponent and encodes separators when they are part of one value. The matching Decode modes follow decodeURI and decodeURIComponent behavior.
Component value uses %20 for a space. Form value uses + for a space under application/x-www-form-urlencoded rules. A literal plus becomes %2B in Form value, so it can be distinguished from a space when decoded.
Yes. URL Inspector reads a complete HTTP(S) URL or a raw query string and displays each parameter in order. It preserves duplicate keys, flags, empty values and empty segments, but it does not edit or rebuild the URL.
Yes. A first decode of %2520 produces %20. Select Decode next layer for one more step to get a space. You can inspect up to five successful layers; the tool never automatically decodes all layers.
No. It parses text locally in your browser. It does not open the URL, follow redirects, fetch its content or determine whether the destination is safe.
The Converter reports a position-aware error for malformed % escapes or invalid UTF-8 instead of silently replacing characters. In URL Inspector, an invalid key or value remains visible beside other successfully parsed cells.
No. Conversion and inspection run in your browser. Only non-content preferences may be remembered locally. A signed-in user can explicitly Save conversion, which sends the Converter input and options to encrypted account storage; Inspector sources are never saved.
Yes. Converter actions use the complete current result. Share sends it to a receiving app you choose, or copies it for manual pasting when browser sharing is unavailable. Review Full URI results for tokens or private data before sharing.
No. Percent encoding is reversible and does not make passwords, tokens or signed links secret. Avoid putting sensitive data in a URL or sharing it without review.