Welcome

首页 / 软件开发 / C# / Server对象之HtmlEncode和UrlEncode的用法

Server对象之HtmlEncode和UrlEncode的用法2011-06-30 博客园 哪热昨天研究URL的传值问题时,我就在思考HtmlEncode和UrlEncode的用法区别是什么,查了些资料,它们的区别是这样的。(我们接着昨天的例子来描述这个问题,大家可以参看下我的前一篇“URL的传递字符串问题小研究”)。

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

语法

Server.HtmlEncode( string )

参数

string

指定要编码的字符串。

1.1示例

string name = "DK51700中继站";

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

Code

string url;
string name;
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中继站

注意 我们看到地址栏中的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>”不见了,为什么?这又是个新问题了。