VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • Server对象之HttpEncode和UrlEncode的用法

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

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

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

  语法

  Server.HtmlEncode( string )

  参数

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

  注意 我们看到地址栏中的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 值”

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



相关教程