0

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

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

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

你能告诉我发生了什么,我该如何解决。

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

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

谢谢你的帮助!

编码器极客

4

2 回答 2

2

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

<%= Html.Encode(s) %>

或者,如果您使用的是 ASP.NET 4,您可以利用新的代码块快捷方式:

<%: s %>
于 2010-02-23T19:35:09.460 回答
0

您需要对您的输入进行 html 编码,以便版权符号实际上是 © 或 © 这将输出为 html 编码或者您可以 html 解码!!!!将其恢复到原始状态

于 2010-02-24T00:35:06.387 回答