URL Encoder & Decoder
Percent-encode or decode URLs and query-string values, with the option to encode an entire URL or only a parameter value.
Two different jobs, two different buttons
Percent-encoding is where most hand-built API calls break. There are two modes and using the wrong one is what produces double-encoded URLs:
- Encode value - escapes everything that is not unreserved, including
&,=,?and/. Use this for the value of a parameter, e.g. a search term that contains an ampersand. - Encode whole URL - keeps the structure characters (
:,/,?,&,=) intact and escapes only the parts that would break parsing, such as spaces and non-ASCII characters.
Symptoms of a double-encoded URL
If a redirect target becomes q=caf%25C3%25A9, the value was encoded twice: the % from the first pass became %25 in the second. Decoding once fixes it. Non-obvious characters worth remembering: a space becomes %20 in a path but + in a form-encoded query body, and # must always be escaped inside a value or the browser treats the rest of the string as a fragment.
Frequently asked questions
Should I use %20 or + for a space?
'%20' works everywhere. '+' only means space in application/x-www-form-urlencoded bodies, and is a literal plus in a URL path.
Why did my URL get encoded twice?
An already-encoded string was passed through the encoder again, turning '%' into '%25'. Decode once to recover it.
Which characters never need encoding?
A-Z, a-z, 0-9, hyphen, underscore, period and tilde. Everything else is legal to encode and often must be.
Related tools
Word Counter
Count words, characters, sentences and paragraphs as you type, with an estimated reading time. Runs entirely in your browser.
Character Counter
Count characters with and without spaces, letters, digits and punctuation, plus a letter frequency table for any text.
Case Converter
Convert text between eight letter cases instantly: uppercase, lowercase, title case, sentence case, camelCase, PascalCase, snake_case and kebab-case.
JSON Formatter & Validator
Format messy JSON with clean indentation, minify it back, or find the exact position of a syntax error. Runs locally in your browser.