在使用HTML实体时,它还会翻译&符号&

问题描述 投票:0回答:1

我正在使用ASP.NET MVC多语言网站。

当我举例说é来实现这个é时,它将它改为é

它似乎首先将&翻译为&

问题是什么?

html asp.net-mvc html-entities
1个回答
1
投票

好吧,我想我可能会看到你指的是什么。在文档头部的元标记中,é正在变为é,但身体中的实体是正确的。

您可能已经从富文本环境(即rtf或.doc文件)复制并粘贴了é,它可能包含编码的&符号而不是纯文本&符号。经验法则 - 永远不会复制文字,因为它复制了各种不可见的字符。当您为您的网站准备副本时,请始终使用纯文本(.txt)文件,并且您将知道您的文本是干净的。如果客户端给你.doc文件首先将它们转换为.txt,你会在将它们复制到html之前看到任何问题。

但是,在文档的头部,当您在属性值中包含文本时,引号之间的内容,例如在描述元标记的content属性中,如下所示:

<meta name="description" content="Enregistreur vocal est une application polyvalente avec un son de haute qualité." />

你不需要使用实体,因为该字符串是纯文本而不是html - 所以将其更改为正常é,它应该工作。

注意:以上假设元标记中的字符串不是来自数据库,而是实际位于html页面中。如果字符串来自数据库,然后放入元标记,您可能已经在asp中使用类似HttpContext.Current.Server.HtmlEncode()的东西将它放在数据库中 - 这是问题的根源。如果是这种情况,在将其放入元标记之前,您需要使用HttpContext.Current.Server.Htmldecode()将其转换回纯文本。

© www.soinside.com 2019 - 2024. All rights reserved.