# URL encoder and decoder: run it free, or from your agent

Percent-encodes or decodes text and URLs as UTF-8. Shows component and full URL encoding and a decoded query table.

## Prompt

Use looot to search the web for each keyword in [your list]. 1. Set up https://looot.ai/skill.md. 2. Search the catalog for a web search endpoint and check its price before you call. 3. Percent-encode each keyword as one query value, so spaces, & and accents survive. 4. Run one search per keyword. 5. Return a table with the keyword, the encoded query and the top three result URLs.

## What it needs

Text, a URL or a percent-encoded string

## What comes back

- component encoded text
- full URL encoded text
- decoded text
- query parameters as key and value

## Endpoints and providers

None. The tool on the web page runs in the browser and calls no endpoint.

## What it costs

Nothing. The tool on the web page runs in the visitor's browser: no account, no API call and no limit per hour. The prompt above runs the same job from your own looot account with current data, billed per call.

## Build query strings

Encode a search term or a redirect URL before you put it in a link.

## Read tracking links

Decode a long ad or email link and see each UTM parameter in plain text.

## Agent API calls

Check what an agent should send when a query value holds spaces, & or =.

## Debug double encoding

Spot %2520 in a link, which means a value was encoded twice.

## What is URL encoding?

URL encoding, also called percent encoding, writes a character as % followed by two hex digits for each of its UTF-8 bytes. A space becomes %20 and é becomes %C3%A9. It lets any text travel inside a URL.

## What is the difference between encodeURIComponent and encodeURI?

encodeURIComponent encodes every character that has a meaning in a URL, including / ? : & = and #. Use it for one query value or one path segment. encodeURI keeps those characters, so it suits a whole link that only needs its spaces and accents fixed.

## Should a space be %20 or +?

Both appear. Plain percent encoding uses %20. HTML forms send application/x-www-form-urlencoded, where a space is +. Turn on the + option when the server expects form encoding, and when decoding a form body.

## Which characters are never encoded?

Letters, digits and - _ . ! ~ * ' ( ) pass through encodeURIComponent unchanged. Everything else, including spaces and non-ASCII letters, is encoded.

## Why do I see %2520 in a URL?

The value was encoded twice. The first pass turned a space into %20, the second turned the % into %25. Decode once and check the result, then fix the code that encodes it a second time.

## Why does decoding fail with an error?

A % must be followed by two hex digits, and the bytes must form valid UTF-8. The page names the position of the first bad escape, such as a lone % in 100%.

## Is my text sent to a server?

No. The page uses the browser's built-in encodeURIComponent, encodeURI and decodeURIComponent. Nothing you paste leaves the tab.

## Related tools

- /free-tools/base64-encoder-decoder
- /free-tools/utm-builder
- /free-tools/curl-to-fetch-converter

## Last reviewed

2026-10-14.
