Runs 100% in your browser — nothing uploaded

URL Encode & Decode

Percent-encode and decode URLs and query strings instantly — choose component or full-URI mode, handle Unicode safely, and treat + as a space for form data. Everything runs locally in your browser.

Text input
Encoded output
Ready — encoding happens on this device.

How to encode and decode URLs

Pick Encode or Decode with the toggle, choose the scope, paste your text on the left and press Run — the result appears on the right, ready to copy. Use Swap to move the output back into the input so you can chain operations or verify a round-trip. For decoding form-submitted data, turn on + as space so a literal plus is read as a space rather than a plus character. There is no upload and no waiting; it is a native browser operation that completes instantly.

What is URL encoding?

URL encoding, or percent-encoding, is how characters that are unsafe or reserved in a URL are made safe to transmit. A URL may only contain a limited set of ASCII characters, so anything outside that set — spaces, accented letters, emoji, or reserved symbols like &, ? and = when they appear inside a value — is replaced by a percent sign followed by the hexadecimal value of each UTF-8 byte. A space becomes %20, an ampersand becomes %26, and café becomes caf%C3%A9. Decoding reverses the process exactly, turning the escaped sequence back into the original text. It is defined by RFC 3986 and is one of the foundations of how the web carries data in links.

Component versus full-URI encoding

The single most common URL-encoding mistake is using the wrong scope. Component mode — the browser's encodeURIComponent — escapes everything reserved, including /, ?, #, & and =. That is exactly what you want for a single value you are dropping into a query string or a path segment, because those characters would otherwise be read as URL structure. Full URI mode — encodeURI — deliberately leaves those structural characters alone so you can encode a whole URL (escaping only spaces and other clearly-illegal characters) without shattering it into pieces. Rule of thumb: if you are encoding one parameter, use Component; if you are encoding an entire address, use Full URI.

Plus signs, spaces and form data

There are two conventions for encoding a space, and mixing them up causes subtle bugs. In a normal URL a space is %20. But in the application/x-www-form-urlencoded format that HTML forms use when they POST, a space is encoded as a plus sign (+). That means a real plus in form data is itself escaped to %2B. When you decode a query string that came from a form submission, enable + as space so the text reads correctly; leave it off when decoding a plain URL where a + is meant literally.

Why a local URL tool is the right call

URLs are rarely as innocent as they look. They carry session tokens, signed redirect parameters, access keys, internal hostnames and user identifiers — the kind of values that should not be pasted into a random website's text box or handed to an AI model that may log the request. Because percent-encoding is a precise, specified transformation, it is also a textbook case where a deterministic tool beats a language model: the codec applies RFC 3986 exactly and round-trips every byte, where a model can mis-handle a reserved character or "tidy" Unicode. gitime.dev runs the whole thing in your browser with the platform's own functions, so a URL full of secrets never leaves your machine.

Frequently asked questions

Component vs full-URI mode?
Component (encodeURIComponent) escapes all reserved chars — use it for one value. Full URI (encodeURI) keeps :/?#&= — use it for a whole URL.
Does it handle Unicode and emoji?
Yes — characters are percent-encoded as their UTF-8 bytes and decode back exactly.
Is my data sent anywhere?
No. It uses the browser's native encode/decode functions locally; nothing is uploaded.
Why does + sometimes mean a space?
Form submissions use + for a space; toggle "+ as space" when decoding form data.

Related tools