Ô在Firefox中显示为商标符号?

时间:2012-11-07 20:48:24

标签: html html-parsing symbols asciiencoding

<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代码。不幸的是,他们使用此字符序列&amp;#212 为程序名称创建商标符号。我的印象是这个角色序列最有可能产生这个角色:Ô。

然而,序列
- 作为TM在 Chrome 中正确显示 - 在 Safari 中以不正确的方式显示为此符号:Ô
- 在 Firefox 中以不正确的方式显示为此符号:Ô

与其他浏览器相比,为什么此符号在Google Chrome中正确显示?我假设这与每个解析不同字符序列的方式有关,但我很困惑为什么Chrome会正确显示它并忽略通常的字符序列符号Ô。

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

谢谢!

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

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

2 个答案:

答案 0 :(得分:3)

使用HTML实体&trade;(使用普通字体而不是符号)。这映射到&#8482;,但命名实体为widely supported

或者,对您的HTML使用UTF-8编码并直接嵌入符号,如this question的答案所示。

答案 1 :(得分:2)

字符引用&#212;明确表示带有CIRCUMFLEX的字符“Ô”U + 00D4 LATIN CAPITAL LETTER O.这不依赖于doctype声明或字符编码。因此,将其显示为其他内容的浏览器行为错误。

使用Symbol字体是一个依赖浏览器错误的老技巧。符号字体是一种kludge,其中字符已被各种符号以相当任意的方式替换。该字体包含商标符号的两个变体,代码位置D4(十六进制)中的serif版本和代码位置E4上的sans-serif版本。 (该代码试图在一个显然没有衬线的环境中使用serif版本。)这是一个真正的旧技巧,早在20世纪90年代Alan Flavell的Using FONT FACE to extend repertoire? <就已经很好地讨论和批评了/ p>

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

方法是:

  1. 写字符本身(™)。如果文档编码是UTF-8或windows-1252,则可以使用合适的编辑器。
  2. 使用十六进制字符引用&#x2122;或十进制字符引用&#8482;。这些工作独立于字符编码,但它们使HTML源有点神秘。
  3. 使用实体参考&trade;。这是更多的助记符,独立于字符编码。从理论上讲,它在XHTML中并不安全。