【问题标题】:Trademark symbol is displayed as raw text商标符号显示为原始文本
【发布时间】:2012-01-31 02:13:02
【问题描述】:

如果您访问www.startwire.com,您将在页面中心(视频下方的黄色框内)看到以下内容:

StartWire™

在我们的开发和舞台环境中,这不是问题,但它在生产中。这可能是什么原因造成的?

【问题讨论】:

  • 您拥有的是™,虽然我不知道 ruby​​ on rails,但这是服务器端问题,因为服务器在发送之前对该页面上的所有内容进行编码。它甚至将http://startwire.com/linkedin/new?nopopup=true 更改为http://startwire.com/linkedin/new?nopopup=true

标签: html ruby-on-rails ruby-on-rails-3 symbols


【解决方案1】:

内容是否在脚本中的某处自动进行了“HTML 编码”(或其他名称)?因为这是 HTML 中出现的内容:™。 我的建议是在您的代码 (™) 中使用该符号。如果这不起作用,请尝试使用\ 转义™&(使其变为\™)。

【讨论】:

  • +1 用于建议实际符号,但您在示例中使用了错误的符号。它应该是 StartWire™。可能是我比较懒,但是我很少再用html实体了。
【解决方案2】:

如果您检查您的页面来源,它会显示:

™

这意味着它可能需要 ™ 并将其转换为 HTML。所以& 变成了&。这可能是由于使用了htmlentities() 函数。

确保您不要进行两次此转换...

造成这种情况的一个可能原因是您从数据库中获取内容,并且您在将条目插入数据库之前对它们进行了编码,并且当您从数据库中检索它们时再次对其进行编码这个数据库。

【讨论】:

  • 这里没有从数据库中提取任何东西:<h2 class="dark mbm mts">Sign-up now. StartWire™ is completely FREE.</h2>
  • 那是你的 HTML 代码吗?这之后怎么回事? ™也应该给出 ™。
【解决方案3】:

不确定,但我检查了你的网站,它显示的就像你写的一样

&™

简单写™

【讨论】:

    【解决方案4】:

    如果您查看页面源代码,您将看到 ™ - 您正在对实体进行双重编码。

    这应该只是™

    【讨论】:

    • 双重编码的可能原因有哪些?
    • @Ramy - 在输出的字符串上使用任何 HTML 编码实用程序都可以做到这一点。
    【解决方案5】:

    在您拥有的 HTML 中:

    <h2>Sign-up now. StartWire&amp;trade; is completely FREE.</h2>
    

    而正确的是:

    <h2>Sign-up now. StartWire&trade; is completely FREE.</h2>
    

    注意无关的&amp;amp;。看起来你在服务器上对某些东西进行双重编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多