ASP.NET Server.HtmlEncode限制

时间:2009-08-03 09:35:46

标签: asp.net

我正在使用Server.HTMLEncode对我的HTML进行编码。

我注意到它不能逃脱单引号,如果您在html中使用单引号,这是一个限制,例如 <input type='text' .... />

(我已经检查过这是有效的XHTML)。

关于Server.HTMLEncode是否还有其他任何限制或注意事项,特别是此方法无法处理的任何无效XHTMl字符?

5 个答案:

答案 0 :(得分:10)

MSDN says Server.HTMLEncode仅执行以下操作:

  • 小于号字符(&lt;)转换为&amp; lt;。
  • 大于号字符(&gt;)转换为&amp; gt;。
  • &符号(&amp;)转换为&amp; amp;。
  • 双引号字符(“)转换为&amp; quot;。
  • 任何代码大于或等于0x80的ASCII代码字符都将转换为&amp;#&lt; number&gt;,其中number是ASCII字符值。

答案 1 :(得分:2)

要包含单引号编码,我使用(在VB.Net中):

Server.HTMLEncode("Here's a string with a single quote").Replace("'", "&#39;")

答案 2 :(得分:0)

我针对此处列出的所有字符代码http://www.ascii.cl/htmlcodes.htm

测试了HTmlENcode

它似乎逃脱了大多数角色,而那些没有逃脱的角色不会破坏XHTML合规性

答案 3 :(得分:0)

HTML Encode应确保字符串中所有符合HTML标准的字符都转换为其等效实体。正如您所发现的,单引号等在(X)HTML中完全有效,不需要编码。如果需要,可以使用UrlEncode / UrlDecode,或使用替换滚动自己的函数。

答案 4 :(得分:0)

我来到这里寻找相同的答案。在我的情况下,解决方案是实际......在你周围的HTML中使用双引号..