URL Encoder and Decoder

Percent-encode or decode in one step

Fix spaces, query values, and reserved characters in a URL or a full list. Fast, private, and free. Built for SEOs, developers, and marketers.

  • No sign-up
  • 100% free
  • Instant output
0 lines

Updated 23 August 2026

A URL encoder replaces unsafe characters with %NN codes. A decoder turns those codes back into readable text. You need that whenever a space, quote, ampersand, or non-English character has to live inside an address.

Why you need a URL encoder and decoder

Browsers are forgiving. A crawler or a mail client may not be. A search phrase with a space, a redirect that contains another URL, or a campaign value with a plus sign will split a query string if you leave it raw. Percent-encoding is the rule in RFC 3986. This page applies that rule to one line or a list, without an account.

Decoding is the other half of the job. Logs, ad exports, and copied links often arrive already encoded. You cannot judge a landing page if you cannot read the parameter.

Who this tool is for

Developers use it when they are not in an editor that calls encodeURIComponent for them. SEOs use it when a localized slug or a filter URL has to stay valid. Analysts use decode on crawler and log lines. Media buyers use it when a destination URL in an ad manager looks like soup. Students use it the first time a homework link dies because of a space.

How to use this tool

  1. Paste a URL, a single value, or one value per line on the left.
  2. Leave Keep URL structure off to encode a component (a keyword, a title, a nested URL). Turn it on to encode a full address while leaving :/?# readable.
  3. Turn on Spaces as + only if the source used form encoding.
  4. Click Encode or Decode. Each line is handled on its own.
  5. Copy the right box. If a decode looks wrong, the line may already have been decoded, or it may not be valid percent-encoding. Invalid sequences are left as they are.

How this fits SEO and marketing work

Published hrefs should be valid. Campaign parameters, site search pages, and translated paths are the usual failures. Encode the value you are inserting, not a tag you already built. A crawler may still fetch a sloppy URL, but you do not want two versions of the same address competing in logs and reports.

In ads and analytics, destination URLs are matched as strings. An extra encode turns %20 into %2520 and the click lands somewhere else, or nowhere. If you already see percent codes, decode first and look at the result before you encode again.

Other tools people use around this job

Encoding does not replace a campaign URL builder in Google Ads, Meta, or GA4. It also does not replace Search Console’s URL Inspection, a log parser, or the encode functions in your language of choice. Those products decide what the parameters mean. This page only makes the string legal or readable. A spreadsheet is still the usual place to keep a long list before you convert it.

Frequently asked questions

A URL encoder turns reserved or non-ASCII characters into a percent sign plus two hex digits. A space becomes %20. That keeps a query string valid in an address bar or an href.

A URL decoder reverses percent-encoding. %20 becomes a space. %2F becomes a slash. You use it when a log, export, or copied link is encoded and you need to read it.

Spaces, quotes, ampersands, and many language characters break an address if you paste them raw. Encoding is the standard way to pass those values safely in a query string.

Developers, SEOs, analysts, and marketers who edit query parameters, campaign URLs, or exported logs. Anyone who has pasted a search phrase into a URL and watched it break.

Paste one value or one value per line. Use Encode for percent-encoding. Use Decode to reverse it. Copy the output. Nothing is uploaded.

Turn that option on when the whole address should stay a URL. The scheme, slashes, and ? # stay readable. Leave it off to encode a single value, such as a keyword or a redirect target.

Some forms send spaces as +. That is application/x-www-form-urlencoded. Turn the option on if your source used plus signs. Otherwise a space encodes as %20.

Yes. One value per line. Encode or decode runs on each line. Blank lines stay blank.

It is free. Encoding and decoding run in the browser. The input is not sent to a server.

Encoding a string that is already encoded. %20 becomes %2520. The destination is then wrong. If you already see percent codes, decode first or leave them.