Skip to content
nestoo
  • What is my IPYour public IPv4 and IPv6 address, location and provider.Network & IP
  • IP lookupLocation, provider and network of any IP address.Network & IP
  • DNS lookupA, AAAA, MX, TXT, NS and other DNS records for any domain.Network & IP
  • WHOIS lookupOwner, registrar and expiry date of any domain or IP.Network & IP
  • Port checkerCheck whether a port is open on your IP or a server.Network & IP
  • HTTP headers checkerResponse headers, status codes and redirect chain of a URL.Network & IP
  • SSL checkerCertificate validity, expiry and chain of any website.Network & IP
  • Password generatorStrong, random passwords generated right in your browser.Passwords & security
  • Password strength checkerHow long a password would take to crack, and if it leaked.Passwords & security
  • Hash generatorMD5, SHA-1, SHA-256, SHA-512 and CRC32 hashes of text or files.Passwords & security
  • JSON formatterFormat, validate and minify JSON, with exact error locations.Developer tools
  • Base64 encoder/decoderEncode text or files to Base64 and decode it back.Developer tools
  • URL encoder/decoderEncode and decode URLs and query strings, and parse any URL.Developer tools
  • JWT decoderRead the header and claims of a JSON Web Token.Developer tools
  • UUID generatorRandom UUID v4 and time-ordered v7 identifiers.Developer tools
  • Unix timestamp converterConvert Unix timestamps to dates and dates to epoch time.Developer tools
  • Binary converterTranslate text to binary and convert between number bases.Developer tools
  • Word counterCount words, characters, sentences and reading time.Text tools
  • Case converterUPPERCASE, lowercase, Title Case, camelCase, snake_case and more.Text tools
  • Diff checkerCompare two texts and highlight the differences.Text tools
  • QR code generatorFree QR codes for links, text, Wi-Fi and contacts, as PNG or SVG.Everyday tools
  • Percentage calculatorPercent of a number, percentage change, increase and decrease.Everyday tools
  • Unit converterConvert length, weight, temperature, volume, data and more.Everyday tools

URL encoder and decoder

Percent-encode text for URLs and query strings, or decode it back to readable text. The URL parser below splits any link into its parts.

Encoding

Encodes everything except letters, digits and - _ . ! ~ * ' ( ). Use it for a single query value, path segment or form field – it matches JavaScript’s encodeURIComponent.

Parse a URL

Paste a link to see its parts and every query parameter, decoded.

Runs in your browser. What you enter never leaves your device.

How to use it

  1. 1Choose Encode or Decode, then type or paste your text – the result updates as you type.
  2. 2When encoding, pick the right kind: Component for a single value such as a search term, Full URL for a complete address, or Form data to write spaces as +.
  3. 3When decoding a query string or form data, turn on “Treat + as a space”. If the text contains a broken escape, the tool marks exactly where it is.
  4. 4To inspect a link, paste it into “Parse a URL” to see its host, port, path, fragment and every query parameter, decoded.

What is URL encoding?

A URL may only contain a limited set of ASCII characters. Everything else – spaces, accented letters, emoji and characters with a special meaning, such as &, =, ? or # – has to be percent-encoded: each byte of the character’s UTF-8 form is written as % followed by two hexadecimal digits. A space becomes %20, é becomes %C3%A9 and € becomes %E2%82%AC.

Encoding stops data from being mistaken for the structure of the URL. If a search term contains & and you leave it as it is, the server splits the term into two parameters; written as %26, it stays part of the value.

Component, full URL or form data?

Component encoding – JavaScript’s encodeURIComponent – encodes everything except letters, digits and - _ . ! ~ * ' ( ). Use it for each piece you put into a URL: a query value, a path segment, a redirect target.

Full URL encoding – encodeURI – leaves the characters that structure a URL, such as : / ? # & =, untouched and only encodes spaces, non-ASCII characters and unsafe symbols. Use it for a whole URL that is already put together correctly, never for single values.

Form encoding (application/x-www-form-urlencoded) is what browsers send when you submit an HTML form, and what URLSearchParams produces. It works like component encoding, except that spaces become +. That’s why + means a space in most query strings – and why a real plus sign has to be written as %2B.

Why decoding can fail

A % must always be followed by two hexadecimal digits. Text such as 100% sure isn’t valid percent-encoding: the percent sign itself should have been written as %25.

The bytes behind the escapes must also form valid UTF-8. caf%E9 is how older systems encoded “café” in Windows-1252 or ISO-8859-1 – in UTF-8, é is %C3%A9. The decoder marks the exact sequence that fails, so you can tell whether the text was cut off or encoded with another character set.

Questions and answers

What does %20 mean in a URL?

%20 is an encoded space. Spaces aren’t allowed in URLs, so they’re written as %20 – or as + in query strings and form data. Both decode to an ordinary space.

Should spaces be encoded as %20 or +?

In the path, always use %20. In the query string both work in practice, because servers decode form data with + as a space. %20 is safe everywhere, while + only means a space in query strings and form bodies.

What is the difference between encodeURI and encodeURIComponent?

encodeURIComponent also encodes reserved characters such as / ? & = #, so it’s right for individual values. encodeURI leaves them alone so that a complete URL keeps working. Using encodeURI on a query value is a common bug: an & inside the value then splits it into two parameters.

Why do I get a “URI malformed” error?

JavaScript’s decodeURIComponent throws it when a % isn’t followed by two hexadecimal digits, or when the escaped bytes aren’t valid UTF-8. Paste the text into the decoder above and it shows which sequence causes the error and at which position.

Which characters don’t need to be encoded in a URL?

Letters A–Z and a–z, digits 0–9 and - . _ ~ never need encoding. Reserved characters such as : / ? # [ ] @ ! $ & ' ( ) * + , ; = are allowed where they have their special meaning, but must be encoded when they are part of the data.