Server对象之HtmlEncode和UrlEncode的用法

昨天研究URL的传值问题时,我就在思考HtmlEncodeUrlEncode的用法区别是什么,查了些资料,它们的区别是这样的。(我们接着昨天的例子来描述这个问题,大家可以参看下我的前一篇“URL的传递字符串问题小研究”)。

HtmlEncode 方法对指定的字符串应用 HTML 编码。

语法

Server.HtmlEncode( string )

参数

string

指定要编码的字符串。

1.1示例

string  name = "DK51700中继站";

注:(我们为了简单,去掉了昨天的例子里字符串中的“+”)

 

Code

 

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中继站

注意 我们看到地址栏中的Name的内容,好像没变化。我们加个HTML的符号呢?

 

2.1示例

string  name = "DK51700中继站<p>";

2.2页面源代码中

<form name="form1" method="post" action="Default2.aspx?Name=DK51700%u4e2d%u7ee7%u7ad9&amp;lt%3bp&amp;gt%3b" id="form1">

2.3地址栏中

http://localhost:8690/WebSite1/Default2.aspx?Name=DK51700中继站&lt;p&gt;

2.4 HtmlDecode后输出

DK51700中继站

们主要对比下两者在地址栏中的不同“&lt;p&gt;” 结果就是把<>HTML表述了。恩,我们还注意到了字符串中的“<p>不见了,为什么?这又是个新问题了。

 

二.UrlEncode方法将使用 URL 编码规则,包括转义字符,应用到指定的字符串。

语法

Server.UrlEncode( string )

参数

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中继站

可以看到在地址栏中,字符串已经按照URL的规则编码了。

我们接着在字符串里加个HTML符号,会发生什么事呢?会是件有趣的事。

2.1示例

string  name = "DK51700中继站<p>";

当我点连接时页面直接报错

“从客户端(Name="DK51700中继站<p>")中检测到有潜在危险的 Request.QueryString 值”

为什么了,又是一个问题。

posted on 2008-11-18 20:55  哪热  阅读(3619)  评论(11编辑  收藏  举报

导航