URL Encoder / Decoder

Any character outside A-Z a-z 0-9 - _ . ~ has to be percent-escaped when it appears in a URL. Miss one and the browser sends you somewhere you did not intend, or an API rejects the call with a 400. This encoder handles whole URLs or bare parameter values, flipping between readable text and safe wire format without breaking structural characters like / or ? unless you ask.

How to encode and decode a URL

  1. 1

    Paste the URL or value

    Input a full URL, a query string or a single parameter.

  2. 2

    Choose encoding level

    Full-URL mode keeps `/ : ? #` intact. Component mode escapes everything reserved.

  3. 3

    Run the conversion

    Each character is UTF-8 encoded and reserved bytes are replaced with `%HH`.

  4. 4

    Reverse when needed

    The same tool decodes percent-escaped input back to its original characters.

Encode vs encodeComponent

The two modes come from JavaScript and they map to different RFC 3986 rules.

Mode Keeps intact Use when
Full URL (encodeURI) : / ? # [ ] @ ! $ & ' ( ) * + , ; = You already have a structured URL
Component (encodeURIComponent) Only unreserved chars You are inserting a value into a template

Typical fixes this tool makes

  • Spaces inside a query value become %20 so the server receives a single parameter.
  • Ampersands inside a value become %26 so they do not open a new query pair.
  • Plus signs inside a search term become %2B so the server does not read them as spaces.
  • Non-ASCII text like café becomes caf%C3%A9 (UTF-8, two bytes).

Double encoding gotcha

If you encode an already-encoded string you get nonsense: %20 becomes %2520. Always decode first when you are not sure where the input came from. The tool warns when it detects percent sequences in the input before encoding.

Frequently Asked Questions

Yes when you select form-URL mode. Strict RFC 3986 mode leaves + as a literal plus because only %20 is the canonical space in URIs.

Yes. Full-URL mode encodes only the characters that are not valid URI structure, so a correct URL goes through unchanged while spaces and non-ASCII inside values still get escaped.

UTF-8, per RFC 3986 and the WHATWG URL spec. Legacy encodings like ISO-8859-1 are not supported.

No. The encoding runs locally in your browser, nothing is sent or stored.

Related Tools

Tool available in other languages