Skip to content
SPCXTools

URL Encode & Decode

Percent-encode text for URLs or decode encoded URLs and query strings back to readable text.

Runs locally — files never leave your device

Loading tool…

How to use URL Encode & Decode

  1. 1Select Encode to make text safe for a URL, or Decode to turn %20-style sequences back into text.
  2. 2Pick Component for a single parameter value or path segment, or Full URL to keep characters such as /, ? and & intact.
  3. 3Tick Spaces as + when working with HTML form data (application/x-www-form-urlencoded).
  4. 4Paste your text — the result appears immediately. In decode mode, query parameters are listed in a table.
  5. 5Copy the output with one click.

Encode and decode URLs safely

URLs can contain only a limited set of characters. Spaces, accented letters, emoji and symbols such as &, = or # must be percent-encoded — written as % followed by two hexadecimal digits — before they can appear inside a URL. This tool converts text to that format and back. It runs in your browser, so the URLs you paste, including any tokens or personal data they contain, are never sent to a server.

Features

  • Two encoding scopes: encode a single value (component) or a whole URL while preserving its structure.
  • Form-style encoding: optionally write spaces as + and decode + back to spaces.
  • UTF-8 support for every language and emoji.
  • Query string viewer: when decoding a URL, each parameter is shown as a key/value pair, making long tracking links and API calls easy to read.
  • Instant output with one-click copy, and a mode switch that moves the result into the input for a quick round trip.

When you need URL encoding

Building API requests. If a search term or filter value contains spaces or symbols, it must be encoded before being added to a query string. Otherwise & or = inside the value would be read as the start of a new parameter.

Reading tracking and redirect links. Marketing links and login redirects often contain a whole URL encoded inside another. Decode them to see where a link really goes and which parameters it carries.

Debugging web forms. Form submissions encode fields as key=value pairs joined by &, with spaces as +. Decoding the raw body shows exactly what was submitted.

Sharing links with non-English text. Browsers display https://example.com/東京 nicely, but the actual request uses %E6%9D%B1%E4%BA%AC. Encoding shows the form that servers receive.

Reserved and unreserved characters

RFC 3986 defines unreserved characters that never need encoding: letters, digits, -, ., _ and ~. Reserved characters — : / ? # [ ] @ ! $ & ' ( ) * + , ; = — have special meaning in URLs and must be encoded when they appear inside a value. Everything else, including spaces and all non-ASCII characters, is always encoded.

URL encoding is different from Base64. If you need to carry binary data or want a compact, alphabet-only representation, use the Base64 encoder — in Base64URL mode its output is safe to place directly in a URL.

Frequently asked questions

What is the difference between Component and Full URL mode?
Component encodes every character that has a special meaning in URLs, including / ? & = #. Use it for individual query values. Full URL leaves those structural characters alone and encodes only what is invalid, such as spaces and non-ASCII letters, so a complete URL stays usable.
Why are spaces sometimes %20 and sometimes +?
In the path and in most modern APIs a space is encoded as %20. HTML forms submitted with the default content type encode spaces as + in the query string. Both are common; tick Spaces as + to match form encoding.
Why do I get an error when decoding?
Decoding fails when a % is not followed by two hexadecimal digits, or when the bytes do not form valid UTF-8. This often happens if the text was only partly encoded or was encoded twice. Check for stray % signs.
How are non-English characters encoded?
They are first converted to UTF-8 bytes, and each byte becomes %XX. For example, "é" becomes %C3%A9 and "東" becomes %E6%9D%B1.
Is my data sent anywhere?
No. Encoding and decoding use built-in browser functions and run entirely on your device.