特殊的html字符在浏览器中无法正确呈现

时间:2010-02-23 19:34:17

标签: html xhtml browser asp.net-mvc-2 htmlspecialchars

我将XHTML片段作为文本存储在搜索索引中。用户提交搜索请求后,我会在页面中插入此文本并将其返回给服务器。这一切都正常,除非文本中有ISO 8859-1 Symbol(例如版权符号©)。该符号未在浏览器中正确显示,它显示为实体编号(©版权符号©),并且不显示为符号。

如果我将XHTML复制并粘贴到静态网页中并在浏览器中查看,则符号会正确呈现。

当我查看源代码时,在上述两种情况下都会看到相同的文本字符串。

您能否告诉我发生了什么,以及如何解决。

我正在使用ASP.NET MVC 2并使用以下代码在.ascx页面中添加XHTML,其中我的Model是一个字符串集合,每个都包含一个XHTML:

<%foreach(string s in ViewData.Model)  {%>
  <%= s %>
  <%} %>   
<%

感谢您的帮助!

CoderGeek

2 个答案:

答案 0 :(得分:2)

您需要对字符串进行html编码才能正确呈现它们:

<%= Html.Encode(s) %>

或者如果您使用的是ASP.NET 4,则可以使用新的code nugget快捷方式:

<%: s %>

答案 1 :(得分:0)

你需要html编码你的输入,以便copyrigth符号是真正的©或© 这将输出为html编码或你可以html解码!!!!将其恢复到原始状态

相关问题