URL Encode online
The tool uses UTF-8 encoding scheme.
What is URL Encoding and How does it work?
by Venelin K. · 3 MINS
Learn what is URL Encoding, why URL encoding is required, and How it works. URL Encoding is a way to translate reserved and non-ascii characters in URLs to a format that is universally accepted and understood by all web browsers and servers. It makes the URLs more reliable and secure.
About URLEncoder
URL Encoder is a simple and easy to use online tool for encoding URLs. You just need to type or paste a string in the input text area, the tool will automatically convert your string to URL encoded format in real time. Once the URL is encoded, you can click in the output text area to copy the encoded URL. Note that, our tool uses UTF-8 encoding scheme for encoding URLs. The world wide web consortium recommends that UTF-8 should be used for encoding.
Apart from the tool, our website also contains various articles about how to encode URLs in different programming languages.
What is URL encoding or Percent Encoding?
URLs in the world wide web can only contain ASCII alphanumeric characters and some other safe characters like hyphen ( - ), underscore ( _ ), tilde ( ~ ), and dot ( . ).
Alphabets / Digits / ^ / ' / ~ / ^ / - / *
Any other character apart from the above list must be encoded.
URL encoding, also known as percent encoding, is a way to encode or
escape reserved, unprintable, or non-ASCII characters in URLs to a safe and
secure format that can be transmitted over the internet. It is also used in
preparing data for submitting HTML forms with content-type
application/x-www-form-urlencoded.
How does URL encoding work?
URL Encoding works like this - it first converts the character to one or more bytes. Then each byte is represented by two hexadecimal digits preceded by a percent sign (%) - (e.g. %xy). That gives us the URL encoded value.
The percent sign is used as an escape character that's why we also refer to URL encoding as Percent encoding.
Percent Encoded = "%" HEXDIG HEXDIG
For instance, Let's understand how to URL encode the character @. To
encode @, we first convert it into a sequence of bytes using its ASCII value.
The ASCII value of @ in decimal is 64, which when converted to
hexadecimal comes out to be 40. We then precede the hex value with
percent sign, which gives us the final URL encoded value %40.
URL Encoding character classification
Following is the classification of different types of characters that cannot be placed directly inside URLs:
ASCII control characters: Characters in the range 0-31 and 127 in the ASCII character set are control characters. These characters are unprintable and cannot be placed directly inside any URL without encoding. Some examples of control characters include backspace, carriage return, line feed, vertical tab, horizontal tab etc.
Reserved characters: Characters like ?, :, /, #, & have special
meaning within URLs. Therefore you can't place them directly inside URLs
without encoding or escaping.
Unsafe characters: Many characters like space, <, >, {, } are unsafe
and must be encoded before placing them inside URLs.
Non ASCII characters: Finally, you cannot securely transmit any character outside the ASCII character set inside URLs. You must encode them.
| Classification | Characters | Encoding required |
|---|---|---|
| Safe characters | Alphabets ( A-Z a-z ), Digits ( 0-9 ), and dot ( . ) | No |
| ASCII control characters | Characters in the range 0-31 and 127 in the ASCII character set | Yes |
| Reserved Characters | : / ? # [ ] @ ! $ & ' ( ) * + , ; = | Yes |
| Unsafe Characters | space < > { } | \ ^ ` " | Yes |
| Non ASCII characters | Characters outside the US-ASCII set. | Yes |
Common ASCII characters and their URL encoded value
| Character | URL Encoding (UTF-8) |
|---|---|
| space | %20 |
| " | %22 |
| & | %26 |
| / | %2F |
| : | %3D |
| ? | %3F |
| @ | %40 |
You can check out the complete ASCII character encoding reference in this blog post.
We also have a tool to decode URLs back to their normal form. It is hosted at https://www.urldecoder.io. Don't forget to check that out if you need to decode URL encoded strings.
You can read more on the blog.