Skip to URL tool
Edwin Lab

URL Encoder & Decoder

Encode a single URI component, work with a whole URI, or inspect ordered query parameters. Your input stays in this browser.

Encode one value or decode one component. Plus signs stay literal; use %2B for a plus in a component.

Input limit: 5 MiB UTF-8. Query mode accepts raw query text, an optional ?, or an absolute HTTP(S) URL.

Output limit: 10 MiB. Whole URI mode preserves reserved separators and does not normalize or validate URLs.

Ready. Choose a mode and process your input.

Choose the right mode

Use URL component mode for one parameter value; it encodes reserved characters such as / and ?. Use Whole URI mode for a URI with structure; reserved separators remain intact. Whole URI encoding is not a URL validator or normalizer and does not convert internationalized host names to punycode.

For example, component encoding turns a b+c/d?e=f into a%20b%2Bc%2Fd%3Fe%3Df. Whole URI encoding retains ://, ?, and &, while encoding spaces as %20.

Query parameter rules

Query mode uses form-style decoding: + means a space, while %2B means a literal plus. It accepts a raw query, an optional leading ?, or an absolute HTTP(S) URL. URL fragments are ignored when you enter an absolute URL. Repeated keys remain separate rows in their original order; parameters without = have an empty value.

For URI component and whole URI modes, + remains a plus. Percent escapes are decoded once only: decoding %252F produces %2F.

Frequently asked questions

Why is plus different from a space?

In a form-encoded query, plus represents a space. In a URI component or whole URI, plus is a literal character; encode a plus sign there as %2B.

Why does %2F stay encoded?

Whole URI decoding preserves reserved separators such as slash so URI structure is not changed. Use component mode when decoding one value.

Are duplicate parameters preserved?

Yes. Query results are an ordered list of key/value pairs, not an object, so repeated keys such as tag=one&tag=two are retained.

Related developer tools

Encode UTF-8 text with Base64 Encoder & Decoder, inspect structured data with JSON Validator & Formatter, or browse all Developer Tools.