Browser-based developer tools

URL Encoder

Encode and decode URL components, query values and percent-encoded text locally in your browser.

Input

0 bytes

Result

Ready

Regex TesterPattern matching and groups Base64 EncoderEncode UTF-8 text Hash GeneratorSHA digests for text

Reference notes

Escaping values for URLs and APIs

Query values

Encoding prevents spaces, ampersands and symbols from breaking query strings or request URLs.

Percent encoding

Decoded output helps inspect copied links, redirect URLs and API callback parameters.

Component based

Formalint uses component encoding, which is appropriate for query values and path fragments.

Choose the decoding context before changing the value

Decode component preserves a literal plus sign. Decode form value treats plus as a space before percent-decoding, for individual values from application/x-www-form-urlencoded data. Both actions decode exactly one layer and reject malformed percent escapes or invalid UTF-8 byte sequences.

InputDecode componentDecode form value
C++C++C followed by two spaces
C%2B%2BC++C++
a+b%20ca+b ca b c
%252F%2F%2F
%C3%A9éé
%E9Error: invalid UTF-8Error: invalid UTF-8
%2Error: incomplete escapeError: incomplete escape

Debug a callback parameter

  1. Keep the original request available locally. Replace tokens and personal data with synthetic values before sharing examples.
  2. Separate the URL structure from the parameter you need. For a complete query string, use a query parser rather than decoding everything before splitting on ampersands: an encoded ampersand may belong inside a value.
  3. Choose the action from the producer's encoding contract. A path segment containing a plus sign should not be interpreted as a form field.
  4. Inspect one decoded layer. A remaining percent sequence may be intentional nested data, not a reason to decode repeatedly.
  5. Encode only the component being inserted. Encoding a whole URL is useful when that URL is itself a parameter value, not when constructing the outer navigable address.

For example, the raw value a+b becomes a%2Bb with Encode and returns unchanged with Decode component. A space becomes %20. Empty input is valid. Error states and input edits clear the previous result; Copy requires a successful operation on the current input.

Decoding does not validate a redirect destination or make text safe for HTML. The tool displays results as text and does not navigate to them. For related payload issues, use the Base64 text codec or inspect decoded JSON in the workspace.

Implementation reference: decodeURIComponent and form-value preparation. This tool uses strict decoding; a tolerant query parser can handle malformed bytes differently.

Frequently asked

URL encoding questions

Why do spaces become %20 or +?

Percent-encoding replaces reserved and unsafe characters with a % followed by the character's hex code. Query strings sometimes use + for spaces instead, depending on the encoding context, which this tool distinguishes between.

Which characters need encoding in a URL?

Reserved characters like &, =, ?, #, and space, along with any non-ASCII characters, need encoding when they appear inside a query parameter value to avoid being misread as part of the URL structure.

Why does double-encoding break my link?

Encoding an already-encoded string turns a % into %25, corrupting the value. This is a common bug when a value passes through more than one layer of URL building without checking whether it was already encoded.