昨天研究URL的传值问题时,我就在思考HtmlEncode和UrlEncode的用法区别是什么,查了些资料,它们的区别是这样的。(我们接着昨天的例子来描述这个问题,大家可以参看下我的前一篇“URL的传递字符串问题小研究”)。
HtmlEncode 方法对指定的字符串应用 HTML 编码。
语法
Server.HtmlEncode( string )
参数
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)string
指定要编码的字符串。
1.1示例
string name = "DK51700中继站";
注:(我们为了简单,去掉了昨天的例子里字符串中的“+”)
Code
stringurl;
stringname;
url="Default2.aspx?Name=";
name="DK51700中继站";
HyperLink1.NavigateUrl=url+Server.HtmlEncode(name);
1.2页面源代码中
form name="form1" method="post" action="Default2.aspx?Name=DK51700%u4e2d%u7ee7%u7ad9" id="form1"
1.3地址栏中
http://localhost:8690/WebSite1/Default2.aspx?Name=DK51700中继站
1.4 HtmlDecode后输出
DK51700中继站
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)注意 我们看到地址栏中的Name的内容,好像没变化。我们加个HTML的符号呢?
2.1示例
string name = "DK51700中继站p";
2.2页面源代码中
form name="form1" method="post" action="Default2.aspx?Name=DK51700%u4e2d%u7ee7%u7ad9&lt%3bp&gt%3b" id="form1"
2.3地址栏中
http://localhost:8690/WebSite1/Default2.aspx?Name=DK51700中继站<p>
2.4 HtmlDecode后输出
DK51700中继站
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)们主要对比下两者在地址栏中的不同“<p>” 结果就是把用HTML表述了。恩,我们还注意到了字符串中的“p”不见了,为什么?这又是个新问题了。
二.UrlEncode方法将使用 URL 编码规则,包括转义字符,应用到指定的字符串。
语法
Server.UrlEncode( string )
参数
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)string
指定要编码的字符串。
1.1示例
string name = "DK51700中继站";
1.2页面源代码中
form name="form1" method="post" action="Default2.aspx?Name=DK51700%u4e2d%u7ee7%u7ad9" id="form1"
1.3地址栏中
http://localhost:8690/WebSite1/Default2.aspx?Name=DK51700%d6%d0%bc%cc%d5%be
1.4 UrlDecode后输出
DK51700中继站
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)可以看到在地址栏中,字符串已经按照URL的规则编码了。
我们接着在字符串里加个HTML符号,会发生什么事呢?会是件有趣的事。
2.1示例
string name = "DK51700中继站p";
当我点连接时页面直接报错
“从客户端(Name="DK51700中继站p")中检测到有潜在危险的 Request.QueryString 值”
为什么了,又是一个问题。