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

发布于 2024-08-23 09:12:32 字数 595 浏览 7 评论 0原文

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

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

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

您能告诉我发生了什么事吗?我该如何解决?

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

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

感谢您的帮助!

编码极客

I am storing pieces of XHTML as text on a search index. Once the user submits a search request, I insert this text in my page and return it to the server. This all works fine except when there is a ISO 8859-1 Symbol in the text (such as a copyright symbol ©). The symbol is not represented correctly in the browser, it is displayed as the entity number (© for the copyright symbol ©) and is not displayed as the symbol.

If I copy and paste the XHTML into a static web page and look at it in the browser, the symbol is rendered correctly.

When I do view source, I see the same text string under both conditions mentioned above.

Can you please tell me what is going on, and how do I fix it.

I am using ASP.NET MVC 2 and using the following code to add the XHTML inside an .ascx page where my Model is a collection o strings, each holding a piece of XHTML:

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

Thanks for your help!

CoderGeek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

·深蓝 2024-08-30 09:12:32

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

<%= Html.Encode(s) %>

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

<%: s %>

You need to html encode the strings in order to render them correctly:

<%= Html.Encode(s) %>

or if you are using ASP.NET 4 you may take advantage of the new code nugget shortcut:

<%: s %>
九局 2024-08-30 09:12:32

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

you need to html encode your input though so that copyrigth symbol is acually © or ©
this will then output back out as html encoded or you can html decode !!!! to return it back to the original state

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文