2
<span style="font-family:Symbol; font-size:10pt; color:#000000">&#212;</span><span style="font-family:MS Sans Serif; font-size:10pt; color:#000000">

以上是一位开发人员创建的商标符号的 HTML 代码。不幸的是,他们使用此字符序列Ô为程序名称创建了商标符号。我的印象是这个字符序列很可能会产生这个字符:Ô。

但是,序列
- 在Chrome中正确显示为 TM。
- 在Safari中错误地显示为这个符号:Ô
- 在Firefox中错误地显示为这个符号:Ô

与其他浏览器相比,为什么此符号在 Google Chrome 中正确显示?我认为这与每个人如何解析不同的字符序列有关,但我只是对为什么 Chrome 会正确显示它并忽略通常的字符序列符号 Ô 感到困惑。

问题:这是用于 HTML 页面中商标符号的最佳字符序列吗?还是使用了其他更常见的商标符号字符序列?

谢谢!

编辑:在其中一个 HTML 页面的顶部找到 DOCTYPE,不确定它是否会有所不同。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
4

2 回答 2

3

使用 HTML 实体&trade;(使用普通字体而不是 Symbol)。这映射到&#8482;,但命名实体得到广泛支持

或者,按照此问题的答案中的建议,对您的 HTML 使用 UTF-8 编码并直接嵌入符号。

于 2012-11-07T21:07:10.243 回答
2

字符引用&#212;明确表示字符“Ô” U+00D4 带有 CIRCUMFLEX 的拉丁文大写字母 O。这不依赖于 doctype 声明或字符编码。因此,将其显示为其他内容的浏览器会出现错误行为。

使用 Symbol 字体是一个依赖浏览器错误的老技巧。Symbol 字体是一种杂乱无章的字体,其中字符已被各种符号以相当随意的方式替换。该字体包含商标符号的两种变体,代码位置 D4(十六进制)的衬线版本和代码位置 E4 的无衬线版本。(代码试图在明显的无衬线环境中使用衬线版本。)这是一个非常古老的技巧,早在 1990 年代 Alan Flavell 的Using FONT FACE to extend repertoire 中就已经讨论和批评过了。

有几种替代方法可以在网页上显示正确的字符 U+2122 TRADE MARK SIGN。不需要字体技巧,字符应该以与周围文本相同的字体呈现;如果你不做任何特别的事情,这会自动发生。

方法是:

  1. 书写字符本身 (™)。例如,如果文档编码为 UTF-8 或 windows-1252,则可以使用像样的编辑器。
  2. 使用十六进制字符引用&#x2122;或十进制字符引用&#8482;。它们独立于字符编码工作,但它们使 HTML 源代码有点神秘。
  3. 使用实体引用&trade;。这更容易记忆,并且独立于字符编码工作。但理论上,它在 XHTML 中并不安全。
于 2012-11-07T21:46:00.173 回答