Skip to content
D DocNectar

Free URL Encoder & Decoder

Percent-encode text for safe use in a URL, or decode a percent-encoded string back to plain text.

Built and fact-checked by the DocNectar team — see our editorial standards

Thanks for rating!

Key Features

Instant Calculation

Get accurate results in real time with our optimized algorithm.

Mobile Friendly

Fully responsive design. Works on all devices & screen sizes.

Privacy Focused

Your data stays on your device. We don't store any inputs.

100% Free

No hidden costs. This tool is completely free forever.

URLs can only safely contain a limited set of characters — letters, digits, and a handful of symbols. Anything else (spaces, ampersands, slashes within a value, non-ASCII characters) needs to be percent-encoded, replaced with a % followed by its hex byte value, or it risks breaking the URL or being misinterpreted by the receiving server.

This tool encodes text into that safe percent-encoded form, or decodes a percent-encoded string back into readable plain text — using the same RFC 3986 encoding rules as JavaScript's encodeURIComponent, not the older form-encoding convention that turns spaces into "+".

How it works

Choose encode or decode mode and paste your text. In encode mode, every character outside the URL-safe set (letters, digits, and a few symbols like - _ . ~) is replaced with its percent-encoded equivalent, including spaces becoming %20. In decode mode, percent-encoded sequences are converted back to their original characters.

  1. Choose encode or decode.
  2. Paste your text into the input box.
  3. Read the result instantly, or save it to download as a PDF.

Examples

Encoding a query parameter value

Encoding "hello world & more" produces "hello%20world%20%26%20more" — safe to place inside a URL's query string without breaking it.

Decoding a URL received from a log or link

Decoding "search%3Fq%3Dlaravel%2Btips" reveals the original readable text, useful when reading URLs from server logs or shared links.

Who should use it

  • Encoding a value before inserting it into a URL query string or path segment.
  • Decoding a URL from a server log or shared link to read it clearly.
  • Preparing text with spaces or special characters for safe use in a link.

Industry applications

  • Web development and API integration
  • Debugging and log analysis
  • Digital marketing (building and reading tracked links)

Advantages

  • Uses the modern RFC 3986 standard, matching JavaScript's encodeURIComponent behavior.
  • Works both directions — encode and decode — in one tool.
  • Correctly handles non-ASCII characters and symbols, not just spaces.

Limitations

  • Encodes an entire input as one value — doesn't selectively encode only part of a string.
  • Doesn't distinguish between encoding a full URL vs. a single component, so applying it to structural URL characters isn't recommended.
  • Uses RFC 3986 encoding only, not the legacy application/x-www-form-urlencoded convention.

Common mistakes to avoid

  • Encoding an entire URL instead of just the specific value being inserted into it, breaking the URL's structural characters.
  • Assuming spaces should become "+" for general URL encoding, which is a form-submission-specific convention, not the general standard.
  • Double-encoding a value that was already percent-encoded, producing % turning into %25.

Best practices

  • Encode only the specific value you're inserting into a URL, never the URL's structural characters.
  • Check whether a value is already encoded before encoding it again, to avoid double-encoding.
  • Use decode mode to inspect URLs from logs or shared links that look garbled with % sequences.

Tips

  • If a URL you're debugging is full of % characters, decode it first to read the actual intended value.
  • When building a URL programmatically, encode each parameter value individually rather than the assembled URL as a whole.

Frequently asked questions

Yes, with no signup and no limit on how many conversions you run.
This tool uses RFC 3986 percent-encoding (the modern standard, matching JavaScript's encodeURIComponent), which encodes spaces as %20. The older application/x-www-form-urlencoded convention uses "+" for spaces instead, but that's specific to form submissions, not general URL encoding.
Everything except unreserved characters: letters (A-Z, a-z), digits (0-9), and the symbols - _ . ~ are left as-is; everything else, including spaces, gets percent-encoded.
Only encode individual values you're inserting into a URL (like a query parameter), not the whole URL — encoding the full URL would also encode characters like : / ? & that need to stay literal for the URL to work correctly.
Plain text without any % sequences passes through unchanged, since there's nothing to decode — decoding is safe to run even if you're not sure whether text is encoded.
Conversions are linked to your browser session so you can revisit them — your data isn't shared with anyone else.

Get new calculators and guides in your inbox

No spam — just new tools like URL Encoder/Decoder and practical guides.

Favorites