URL encoder and decoder
Percent-encode text for a query string with the standard component rules: spaces become %20, reserved characters are escaped, and UTF-8 text is handled.

Enter text to see output.
What to know
This page applies the same component encoding browsers use for a single URL part. Letters, digits and the marks - _ . ! ~ * ' ( ) are left as they are, and every other character becomes percent-encoded UTF-8 bytes in uppercase hexadecimal.
That includes the characters that give a URL its structure. Slash, question mark, ampersand, equals, hash, colon, at sign, comma, semicolon, dollar and plus are all escaped, so 한국 & a/b?c=d e+f turns into %ED%95%9C%EA%B5%AD%20%26%20a%2Fb%3Fc%3Dd%20e%2Bf. That is exactly what you want for one parameter value, and exactly what you do not want for a whole address.
Paste https://a.com/p?q=한 글&x=1 and the result is https%3A%2F%2Fa.com%2Fp%3Fq%3D%ED%95%9C%20%EA%B8%80%26x%3D1, which no longer works as a link. Encode only the value, then place it after the equals sign yourself.
A space becomes %20 rather than a plus sign. Servers accept %20 in a query string, but a plus is read as a space only by form-style parsers, which is why a literal plus has to appear as %2B. Emoji are four bytes, so 😀 gives %F0%9F%98%80, and a lone half of an emoji pair makes the output show the invalid-input message.
This page only encodes. To reverse a percent-encoded string, open the main text encoder and pick URL decode.
Choose a specific task 1
Related tools 4
How to use URL encoder and decoder
- Paste the single parameter value, for example 한국 & a/b, into the Text input box.
- Read the Output panel: %ED%95%9C%EA%B5%AD%20%26%20a%2Fb, ready to follow q= in a query string.
- Build the final address yourself by typing https://example.com/search?q= in front of the copied value.
- Test the link in a private window to confirm the server decodes it as expected.
Quick answers
Why is a space %20 and not a plus?
The standard component rule escapes spaces as %20, which every server understands. A plus is only read as a space by form-style parsing, so this tool encodes a real plus as %2B.
Which characters stay unencoded?
Letters, digits, and the marks - _ . ! ~ * ' ( ). Everything else, including slash, colon and ampersand, is escaped.
Can I encode a complete URL here?
You can, but the slashes, colon and question mark are escaped too, so the result is a value to embed inside another URL, not a working address.
What is the byte pattern for Korean text?
Each Hangul syllable becomes three bytes, so one syllable gives nine characters such as %ED%95%9C. Four syllables produce 36 characters of percent-encoding.
