特殊 html 字符在浏览器中无法正确呈现
我将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要对字符串进行 html 编码才能正确呈现它们:
或者如果您使用的是 ASP.NET 4,您可以利用新的 代码块 快捷方式:
You need to html encode the strings in order to render them correctly:
or if you are using ASP.NET 4 you may take advantage of the new code nugget shortcut:
你需要对你的输入进行 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