Why?
Server.UrlEncode("2*")
return 2*
while it should return 2%2A
as tested on this demo site
According to .NET, *
is a 'safe' character and needs not to be encoded.
Whether this is actually correct or not, I do not know.
RFC 1738 specifically allows *
in the URL:
Thus, only alphanumerics, the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL.
So, there is no need to encode it.
The page you link to is a classic asp page so uses UrlEncode
, so quite an old implementation and not the .NET one.