我正在使用ASP.NET MVC多语言网站。
当我举例说é
来实现这个é
时,它将它改为é
。
它似乎首先将&
翻译为&
。
问题是什么?
好吧,我想我可能会看到你指的是什么。在文档头部的元标记中,é
正在变为é
,但身体中的实体是正确的。
您可能已经从富文本环境(即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()将其转换回纯文本。