1. UrlEncode/UrlDecode
2. HtmlEncode/HtmlDecode
3. HtmlAttributeEncode
4. ParseQueryString
5. UrlPathEncode
1.UrlEncode/UrlDecode Method
Purpose
The main purpose of these two methods is to encode and
decode the urls respectively. We need to encode the urls because some of the
characters are not safe sending those across browser. Some characters are being
misunderstood by the browser and that leads to data mismatch on the receiving
end. Characters such as a question mark (?), ampersand (&), slash mark (/),
and spaces might be truncated or corrupted by some browsers.
For instance user requires sending the data in the url
querystrings in the following format
Eg:
string Url = "http://localhost:9618/WebForm1.aspx?" + "names=suresh#satheesh#vijay#";
On the receiving end if the developer tries to read the
url querystring values in the following way
string QueryStringValues =
Request.QueryString["names"];
the developers reads it as “suresh” which is not
the expected result
The workaround for this we need to encode the url and
read the querystring values to get the expected result.
UrlEncode
Eg:
string Url =
"http://localhost:9618/WebForm1.aspx?" +
HttpUtility.UrlEncode("names=suresh#satheesh#vijay");
Response.Redirect(Url);
When we use the UrlEncode for the above url, the new url
looks in the following way:
http://localhost:9618/WebForm1.aspx?names=suresh%23satheesh%23vijay
When the user tries to fetch the querystring values on
the receiving end, the expected result is “suresh#satheesh#vijay”
Eg:
string QueryStringValues =
Request.QueryString["names"];
Response.Write(QueryStringValues);
UrlDecode
This method is used to convert the encoded url back into
a decoded string.
If you want to decode the entire url on the receiving
end, just decode in the following way.
Eg:
string Url = HttpUtility.UrlDecode(Request.RawUrl);
The expected result would be
"/WebForm1.aspx?names=suresh#satheesh#vijay” ;
We can also decode only the querystring values on the
receiving end in the following way,
Eg:
string QueryStringValues =
Request.QueryString["names"];
QueryStringValues = HttpUtility.UrlDecode(QueryStringValues);
2.
HtmlEnCode/HtmlDecode Method
HtmlEncode -Purpose
The main purpose of HtmlEncode is to convert a
HTML-encoded string for reliable HTTP transmission from the Web server to a
client. It mainly converts the characters that are not allowed in Html like
“<”,”>”, spaces and punctuation marks. For
example, < is replaced with < and " is replaced with ".
HtmlDecode converts back to the original string
which is html encoded.
For instance user has a requirement where he wants to
display the data in the following way
Eg: “<Suresh
Kumar>”
If the developer uses the following code, it is
misinterpreted on the browser receiving end
Label1.Text =
"<Suresh Kumar>" and nothing
is visible on the browser.
To achive this we need use the HtmlEncode for displaying
the correct data.
Eg:
Label1.Text = HttpUtility.HtmlEncode("<Suresh Kumar>");
Also Htmlencoding is used to avoid Cross-site scripting.
3.
HtmlAttributeEncode Method
Purpose
This method is used to encode only certain characters
like Quotation marks (“), ampersands (&), and left angle brackets.
Performance wise, this method is faster than the HtmlEncode.
Eg:
Response.Write(HttpUtility.HtmlAttributeEncode(TextBox3.Text));
4.ParseQueryString Method
Purpose
This method is used to retrieve the querystring values
of an url in the NameValueCollection format. This helps developers for
traversing easily to read the querystring values when there are multiple
querystring values in the url. The NameValueCollection in .Net framework
comes with namespace System.Collections.Specialized.
Let’s say user has an url with querystring values on the
receiving end then ParseQueryString is used for retrieving the values.
Eg:
string Url = "http://localhost:3873/WebForm1.aspx?" + "param1=val1¶m2=val2¶m3=val3¶m4=val4¶m5=val5";
Response.Redirect(Url);
On the receiving end or code behind we can read the
querystring values using the ParseQueryString in the following way.
Uri Uri = new Uri(Request.Url.AbsoluteUri);
NameValueCollection
nvColl = HttpUtility.ParseQueryString(Uri.Query);
string param1value =
nvColl["param1"];
On the receiving end the Request.QueryString
also retrieves the NameValueCollection format of querystring values.
The difference between HttpUtility.ParseQueryString and
Request.QueryString is the former requires the complete url as input
where as the later doesn’t require.
So HttpUtility.ParseQueryString can be used not
only on the receiving end but on any code behind file when developer requires to
split and play with the url to read the querystring values.
|