正确的编码HTML页面标题的方法

时间:2012-08-22 15:06:18

标签: asp.net html webforms

我有一个ASP.NET WebForms应用程序。我根据数据库中的内容设置页面标题。

由于此内容是由用户输入的,因此它可以包含任何字符,包括可以解释为HTML标记的字符。因此,我在设置标题之前对此内容进行HTML编码。

但我发现这会产生过度编码的结果而导致问题:

<title>Hoigaard&amp;#39;s Nordic Walking Tuesdays</title>

安全编码用于设置标题标签的文本的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

我对此进行了测试,看来设置Page.Title 已经执行编码。因此,您的额外编码会导致双重编码结果。只需直接设置Page.Title

Page.Title = "Test & Testing";

结果:

<title>Test &amp; Testing</title>

答案 1 :(得分:0)

使用类似于PHP函数htmlspecialchars()的函数:

<%
' Copyright (c) 2009, reusablecode.blogspot.com; some rights reserved.
' This work is licensed under the Creative Commons Attribution License.

' Convert special characters to HTML entities.
function htmlspecialchars(someString)
    ' Critical that ampersand is converted first, since all entities contain them.
    htmlspecialchars = replace(replace(replace(replace(someString, "&", "&amp;"), ">", "&gt;"), "<", "&lt;"), """", "&quot;")
end function
%>

来源:http://snipplr.com/view/12207/htmlspecialchars/