2010-02-23 153 views
0

我将XHTML作为文本存储在搜索索引中。一旦用户提交了搜索请求,我将这些文本插入到我的页面中并将其返回给服务器。除文本中有ISO 8859-1 Symbol(例如版权标记©)外,这一切都可以正常工作。该符号在浏览器中未正确表示,它显示为实体编号(©版权符号为©),并且不显示为符号。特殊html字符在浏览器中无法正确显示

如果我将XHTML复制并粘贴到一个静态网页并在浏览器中查看它,则该符号将被正确渲染。

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

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

我使用ASP.NET MVC 2,用下面的代码添加的.ascx页面,我的模型是一家集Ø串,每拿着一块XHTML里面的XHTML:

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

谢谢您的帮助!

CoderGeek

回答

1

您需要HTML编码字符串,以便正确地使其:

<%= Html.Encode(s) %> 

,或者如果你正在使用ASP.NET 4,你可以采取新的code nugget快捷的优势:

<%: s %> 
+0

谢谢,但这不是我想要做的。我想呈现html,而不是渲染html的文本表示。我的html呈现很好,除了这些特殊字符。 – Barka 2010-02-23 19:50:52

0

您需要对html输入进行编码,以便copyrigth符号是©或© 这将然后输出作为HTML编码或您可以HTML解码!将其恢复到原始状态

+0

lol应该&#1 6 9; (作为一个字符串,但什么你知道它的HTML编码笑 – davethecoder 2010-02-24 00:36:00

+0

感谢 为了让浏览器显示&#169;而不是©类型,而没有空间下列事项:; 没有输入到 & amp;#169所有这些都来自我的服务器,并且所有显示都正确(xhtml呈现正确 - 即,html元素被呈现),除了符号外 谢谢! – Barka 2010-02-24 05:19:56

相关问题