🌐
W3Schools
w3schools.com β€Ί tags β€Ί ref_urlencode.ASP
HTML URL Encoding Reference
URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits.
🌐
Eric Meyer
meyerweb.com β€Ί eric β€Ί tools β€Ί dencoder
URL Decoder/Encoder
The URL Decoder/Encoder is licensed under a Creative Commons Attribution-ShareAlike 2.0 License.
Discussions

What are all the reasons behind url encoding?
Some characters are reserved. That is to say, they have semantic meaning within a URL itself: forward slash /, ampersand &, the question mark ?, etc. all mean something. So, these need to be encoded when part of the data payload of a URL so as not to break the URL parser. Additionally, url encoding can be used to represent non-printable characters or binary data within a URL. More on reddit.com
🌐 r/django
4
0
February 20, 2019
URL encoding using a `+` instead of ` ` for a space - Developers - Talk TW
Would there be any interest from the community – and any support from the core team – for changing the URL fragment encoding to allow + instead of to encode a space? It’s simply a matter of prettier URLs, but to me that is likely enough of a reason. I would rather look at this: ... More on talk.tiddlywiki.org
🌐 talk.tiddlywiki.org
2
0
September 5, 2023
utf 8 - What is the proper way to URL encode Unicode characters? - Stack Overflow
I know of the non-standard %uxxxx scheme but that doesn't seem like a wise choice since the scheme has been rejected by the W3C. Some interesting examples: The heart character. If I type this int... More on stackoverflow.com
🌐 stackoverflow.com
URL encoding the space character: + or ? - Stack Overflow
When is a space in a URL encoded to +, and when is it encoded to ? More on stackoverflow.com
🌐 stackoverflow.com
🌐
Jam
jam.dev β€Ί utilities β€Ί url-encoder
URL encoder/decoder | Free, Open Source & Ad-free
Easily encode and decode URLs online with Jam's free tool. Handle special characters, spaces, and non-ASCII symbols in web addresses and query strings efficiently.
🌐
Utilities and Tools
utilities-online.info β€Ί urlencode
url escape/unescape - Encode Decode
Encode special characters in URLs for safe and compliant sharing or storage.
mechanism for encoding information in a Uniform Resource Identifier
Percent-encoding, also known as URL encoding, is a method to encode arbitrary data in a uniform resource identifier (URI) using only the US-ASCII characters legal within a URI. Percent-encoding is used to … Wikipedia
🌐
Wikipedia
en.wikipedia.org β€Ί wiki β€Ί Percent-encoding
Percent-encoding - Wikipedia
2 weeks ago - Percent-encoding, also known as URL encoding, is a method to encode arbitrary data in a uniform resource identifier (URI) using only the US-ASCII characters legal within a URI. Percent-encoding is used to ensure special characters do not interfere with the URI's structure and interpretation.
🌐
ThoughtCo
thoughtco.com β€Ί encoding-urls-3467463
Why We Add URL Encoding on Websites
January 3, 2020 - Any character that is not an alphabetic character, a number, or a special character that is being used outside its normal context must be encoded in your page. Below is a table of common characters in URLs and their encoding:
Find elsewhere
🌐
Albionresearch
albionresearch.com β€Ί tools β€Ί urlencode
The URLEncode and URLDecode Page
URL Encoding replaces β€œunsafe” characters with β€˜%’ followed by their hex equivalent. Characters which need not be escaped are defined in RFC3986 (which replaced RFC2396).
🌐
N-central
developer.n-able.com β€Ί n-central β€Ί docs β€Ί url-encoding-of-special-characters
URL encoding of special characters | N-central APIs
The document explains the necessity of encoding special characters in URLs to prevent misinterpretation, particularly when these characters are part of usernames or passwords, and provides examples of how to encode them using forms or JavaScript.
🌐
TiddlyWiki
talk.tiddlywiki.org β€Ί developers
URL encoding using a `+` instead of ` ` for a space - Developers - Talk TW
September 5, 2023 - Would there be any interest from the community – and any support from the core team – for changing the URL fragment encoding to allow + instead of to encode a space? It’s simply a matter of prettier URLs, but to me that is likely enough of a reason. I would rather look at this: https://tiddlywiki.com/#The+First+Rule+of+Using+TiddlyWiki than this: https://tiddlywiki.com/#The First Rule of Using TiddlyWiki Technically, this is slightly problematic, because I’m pretty sure that ...
🌐
W3Schools
w3schools.com β€Ί html β€Ί html_urlencode.asp
HTML URL Encoding
URL encoding replaces non-ASCII characters with a "%" followed by hexadecimal digits.
🌐
URL Encoder
urlencoder.io
URLEncoder: URL Encode Online
We cannot provide a description for this page right now
🌐
Digi
docs.digi.com β€Ί resources β€Ί documentation β€Ί digidocs β€Ί 90001488-13 β€Ί concepts β€Ί c_url_encoding.htm
URL encoding (percent encoding)
August 15, 2018 - URL encoding replaces non-ASCII characters with a percent sign (%) followed by two hexadecimal digits.
Top answer
1 of 6
540

From Wikipedia (emphasis and link added):

When data that has been entered into HTML forms is submitted, the form field names and values are encoded and sent to the server in an HTTP request message using method GET or POST, or, historically, via email. The encoding used by default is based on a very early version of the general URI percent-encoding rules, with a number of modifications such as newline normalization and replacing spaces with "+" instead of "%20". The MIME type of data encoded this way is application/x-www-form-urlencoded, and it is currently defined (still in a very outdated manner) in the HTML and XForms specifications.

So, the real percent encoding uses %20 while form data in URLs is in a modified form that uses +. So you're most likely to only see + in URLs in the query string after an ?.

2 of 6
450

This confusion is because URLs are still 'broken' to this day.

From a blog post:

Take "http://www.google.com" for instance. This is a URL. A URL is a Uniform Resource Locator and is really a pointer to a web page (in most cases). URLs actually have a very well-defined structure since the first specification in 1994.

We can extract detailed information about the "http://www.google.com" URL:

+---------------+-------------------+
|      Part     |      Data         |
+---------------+-------------------+
|  Scheme       | http              |
|  Host         | www.google.com    |
+---------------+-------------------+

If we look at a more complex URL such as:

"https://bob:[email protected]:8080/file;p=1?q=2#third"

we can extract the following information:

+-------------------+---------------------+
|        Part       |       Data          |
+-------------------+---------------------+
|  Scheme           | https               |
|  User             | bob                 |
|  Password         | bobby               |
|  Host             | www.lunatech.com    |
|  Port             | 8080                |
|  Path             | /file;p=1           |
|  Path parameter   | p=1                 |
|  Query            | q=2                 |
|  Fragment         | third               |
+-------------------+---------------------+

https://bob:[email protected]:8080/file;p=1?q=2#third
\___/   \_/ \___/ \______________/ \__/\_______/ \_/ \___/
  |      |    |          |          |      | \_/  |    |
Scheme User Password    Host       Port  Path |   | Fragment
        \_____________________________/       | Query
                       |               Path parameter
                   Authority

The reserved characters are different for each part.

For HTTP URLs, a space in a path fragment part has to be encoded to "%20" (not, absolutely not "+"), while the "+" character in the path fragment part can be left unencoded.

Now in the query part, spaces may be encoded to either "+" (for backwards compatibility: do not try to search for it in the URI standard) or "%20" while the "+" character (as a result of this ambiguity) has to be escaped to "%2B".

This means that the "blue+light blue" string has to be encoded differently in the path and query parts:

"http://example.com/blue+light%20blue?blue%2Blight+blue".

From there you can deduce that encoding a fully constructed URL is impossible without a syntactical awareness of the URL structure.

This boils down to:

You should have %20 before the ? and + after.

Source

🌐
MetaCPAN
metacpan.org β€Ί pod β€Ί URL::Encode
URL::Encode - metacpan.org
September 30, 2013 - The application/x-www-form-urlencoded format encodes a ordered data sets of pairs consisting of a name and a value, with pairs seperated by ampersand or semicolon and names and values seperated by the equal sign. Space characters are replaced with plus sign and any characters not in the unreserved character set is encoded using the percent-encoding scheme also used for resource identifiers.
🌐
URL Encode
urlencoder.org
URL Encode and Decode - Online
Encode to URL-encoded format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data.
🌐
MDN Web Docs
developer.mozilla.org β€Ί en-US β€Ί docs β€Ί Web β€Ί JavaScript β€Ί Reference β€Ί Global_Objects β€Ί encodeURI
encodeURI() - JavaScript | MDN
The encodeURI() function encodes a URI by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two surrogate characters).
🌐
Learnhacking
learnhacking.io β€Ί url-encoding-a-security-primer
URL Encoding: A Security Primer
October 11, 2022 - Likewise, decoding is the reverse of encoding (to get back to the original data format). URL encoding is a mechanism for translating unprintable or special characters to a universally accepted format by web servers and browsers.