SITE UNDER CONSTRUCTION. Everything here is provided AS IS, WITHOUT WARRANTIES, to the extent the law allows. It is information, not professional advice. Use at your own risk. Terms and liability limits →

eThorns ES
← DeveloperES

Tool 5.9

URL encode & decode online + URL parser

Percent-encode or decode URLs and query values, and break any URL into protocol, host, path, query parameters and fragment. Runs in your browser.

Runs on your deviceRuns entirely in your browser: nothing you type or upload leaves your device.

How to use it

  1. Paste text or a URL.
  2. Press Encode component for a single value, Encode full URL for a whole address, or Decode.
  3. Paste a full URL to see its parts and a table of its query parameters.

Why links fill up with %20 and %C3%B1

A web address may only contain a limited set of characters. Spaces, accents, ñ and symbols like & or # have to be written as a % sign followed by two hexadecimal digits, which is called percent-encoding. That's why a search for "zapatos niño" turns into zapatos%20ni%C3%B1o in the address bar.

You need to encode by hand when you build a link yourself: a search link, a WhatsApp link with a prewritten message, a redirect parameter, or a value you pass to an API. You need to decode when you get a long link full of % signs and want to know what it really says.

Example: reading a shop link

Paste https://tienda-ejemplo.co/buscar?q=zapatos%20ni%C3%B1o&utm_source=whatsapp#resenas. The URL parts table shows the protocol https:, the host tienda-ejemplo.co, the path /buscar, the query and the fragment #resenas, which usually just tells the browser where to scroll. The query parameters table decodes each value: q is zapatos niño, and utm_source is whatsapp, a tag that only tells the shop where the visit came from.

Going the other way: type zapatos niño & medias and press Encode component. You get zapatos%20ni%C3%B1o%20%26%20medias. The ñ becomes two codes, %C3%B1, because in UTF-8 it takes two bytes, and the & becomes %26 so it isn't mistaken for the start of another parameter.

Encoding the wrong part, or encoding twice

Using Encode full URL on a single value leaves & = ? and / as they are, so a value that contains them breaks the link. Using Encode component on a whole address does the opposite: https:// becomes https%3A%2F%2F, which is only correct when that address goes inside another link as a parameter.

The other common mistake is encoding twice. If you see %2520 or %25C3%25B1, the % signs themselves were encoded again (%25 is the code for %). Press Decode twice to get the original text back, and fix the step that encodes it a second time.

FAQ

Encode component or full URL: which one?

Use Encode component for a single value that goes inside a URL, such as a search term or a redirect parameter. Use Encode full URL only to fix spaces or accents in an address that is otherwise complete.

Why is a space sometimes + and sometimes %20?

HTML forms encode spaces as +, while URLs use %20. When decoding form data, tick 'Treat + as space'.

What does 'malformed percent-encoding' mean?

A % sign that isn't followed by two hex digits, or bytes that don't form valid UTF-8. Write a literal % as %25.

Why do I get an error decoding %F1?

`%F1` is how some older systems write ñ in Latin-1, a single byte. Today's standard is UTF-8, where ñ is `%C3%B1`, and a lone `%F1` isn't valid UTF-8, so decoding fails. The link was made by an old system; replace `%F1` with `%C3%B1` (and `%E1` for á with `%C3%A1`, and so on) and decode again.

Is it safe to paste links with personal data here?

Yes. Encoding, decoding and splitting the link happen in your browser, and nothing is sent. Still, notice what the parameters contain: links in emails and messages sometimes carry your email address or a personal token, so think twice before forwarding them.

  • 5.1JSON formatterFormat or minify JSON and find syntax errors by line and column.
  • 5.2CSV to JSON converterConvert CSV to JSON or JSON to CSV with comma, semicolon or tab separators.
  • 5.3YAML to JSON converterConvert YAML to JSON and back in your browser.
  • 5.4Base64Encode or decode Base64 in your browser: UTF-8 text, URL-safe Base64, files to Base64 or data URLs, and Base64 back to a downloadable file.
  • 5.5Color contrast checkerCheck the contrast ratio of a text color on its background against WCAG 2.2 AA and AAA, for normal text, large text and UI components.
  • 5.6Cron explainerRead a 5-field cron expression as a plain sentence and see its next 5 run times in your time zone.
  • 5.7Number base converterConvert whole numbers between decimal, hexadecimal, binary and octal, with bit length and grouped digits.
  • 5.8HTML entity encoderEncode text as HTML entities (named, decimal or hex) or decode entities back to text: <, >, &, quotes, Spanish accents, Latin-1 symbols.
  • 5.10SHA-256 hashGet SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or files and verify a download against its published checksum.
  • 5.11UUID generatorGenerate random UUID v4 or time-ordered UUID v7 (RFC 9562) in your browser, 1 to 1000 at a time, in uppercase or without dashes.
  • 5.12Unix timestampConvert Unix timestamps in seconds or milliseconds to ISO 8601, UTC and your local time, or a date back to epoch.
  • 5.13JWT decoderDecode a JSON Web Token in your browser: see the header and payload as formatted JSON and whether it has expired.
  • 5.14Regex testerTest regular expressions live: highlighted matches, capture and named groups, flags and clear errors.

╌╌ END ╌╌