代码之家  ›  专栏  ›  技术社区  ›  neda Derakhshesh

在使用HTML实体时,它还转换了与号&

  •  0
  • neda Derakhshesh  · 技术社区  · 7 年前

    我正在开发一个ASP.NET MVC多语言网站。

    我举个例子 é 为了达到这个目的 é ,它将其更改为 é .

    好像是第一次翻译 & & .

    怎么了?

    1 回复  |  直到 7 年前
        1
  •  1
  •   garrettlynchirl    7 年前

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

    您可能已经从富文本环境(即rtf或.doc文件)中复制和粘贴,并且它可能包含编码的与号,而不是纯文本与号。经验法则-永远不要从像word这样的东西复制文本,因为它可以复制各种不可见的字符。当你为你的网站准备副本时,总是用纯文本(.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()将其转换回纯文本。