How to use the full URL encoder
- Set Direction to Encode or Decode.
- Paste your text into Input.
- Copy the Encoded or Decoded result. Encoded output uses upper-case hex, such as
%2D.
What it does and when to use it
Normal URL encoding, as done by a browser’s encodeURIComponent, keeps letters, digits and a few symbols readable and encodes only the rest. This tool encodes everything, one %XX per UTF-8 byte. That makes it useful when:
- You want to see how many bytes a word or emoji takes in a URL.
- You are testing that a server, proxy or security filter decodes URLs correctly before checking them.
- A legacy system or a strict spec demands that all characters be encoded.
- You need to decode a value that someone encoded in full.
For links you will actually publish, use the URL encoder, which follows the usual rules and keeps URLs short and readable. To decode form data where + means a space, or to decode double-encoded values, use the URL decoder. For a byte view with offsets, see the hex dump viewer.
How it works
Percent-encoding is defined in RFC 3986, section 2.1: a byte is written as % followed by two hex digits.
Encode: the text is converted to UTF-8 bytes, and every byte becomes % plus its value in upper-case hex. ASCII characters are one byte, so a becomes %61. Accented letters take two bytes, and ✓ takes three: %E2%9C%93.
Decode: runs of valid %XX escapes are collected, turned into bytes and read as UTF-8. Anything else, including + and a lone %, is copied through unchanged.
Everything runs in your browser.
Worked examples
a b → %61%20%62
safe-text_123 ✓ → %73%61%66%65%2D%74%65%78%74%5F%31%32%33%20%E2%9C%93
%E2%9C%93 → ✓ (Decode)
%61%20%62+c → a b+c (Decode)
In the second line, a normal encoder would leave safe-text_123 alone and encode only the space and the tick. Here all 15 characters become 17 escapes, because the tick is three bytes. The last line shows that + survives decoding.
Limits and tips
- Fully encoded URLs are about three times longer than the original. Keep them out of places with length limits, such as some email clients and older browsers.
- Do not encode a whole URL including
https://if you want a working link: the:and/would be encoded too. Encode only the part that needs it. - The decoder assumes UTF-8. Bytes from older encodings like Latin-1 may show as replacement characters.
Frequently asked questions
Why would I encode letters that do not need it?
Is %61 the same as a in a URL?
Why is a plus sign not turned into a space when decoding?
What happens to a broken escape like 50%?
Does percent-encoding hide the text?
Sources
- RFC 3986: Uniform Resource Identifier (URI): Generic Syntax — IETF / RFC Editor, accessed 2026-10-08
How do we know nothing is uploaded? Test it yourself on the privacy proof page.