IE7在无衬线字体中显示商标实体为衬线字体

4
我有一个使用Google的Open Sans字体的网页。该网页还使用了商标符号的HTML实体(™)。
在Internet Explorer 7中,该实体不会使用Open Sans显示,而是以衬线字体显示:

IE7 rendering trademark entity incorrectly

这里是一个简短的页面,重现了问题:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400,700" />
        <!--[if lte IE 8]>
            <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400" />
            <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:700" />
        <![endif]-->
        <style type="text/css">
        * {
            font-family: "Open Sans", Arial, sans-serif;
        }
        </style>
    </head>
    <body>
        <h1>This is trademarked&trade;</h1>
        <p>This is trademarked&trade;</p>
    </body>
</html>

使用实体&#8482;会出现相同的问题,使用字面值™也是如此,但奇怪的是,实体&reg;可以正确显示。有没有办法让这个实体在Open Sans中呈现,或者如果失败了,在无衬线字体中呈现?

我无法在IE 11的IE 7仿真模式中重现该问题。然而,在虚拟XP机器上的IE 6显示出类似的问题:任何字体中都会出现一个小矩形,而不是“™”——这是缺少字形的典型症状。这也会发生在一些其他Windows-1252字符上,比如“š”,但并非全部。 - Jukka K. Korpela
我不确定IE11的仿真模式是否完全忠实于IE7的问题。我觉得奇怪的是商标符号有问题,但注册符号没有问题,因为我本以为它们被视为相同的。我尝试将IE7的编码更改为UTF-8、Windows-1252和ISO-8859-1,但没有任何区别。 - DanielGibbs
这个问题在更现代的Internet Explorer版本中是否出现? - Sampson
不行。Internet Explorer 8及以上版本可以正常工作。不幸的是,该网站必须支持Internet Explorer 7及以上版本。 - DanielGibbs
1个回答

2

Open Sans和Arial都没有实体,所以您的浏览器将默认为系统字体。尝试在您的字体列表中添加一些备用系统字体:

  font-family: "Open Sans", "Helvetica Neue", Helvetica, Calibri, Arial Unicode MS, Lucida Sans Unicode, DejaVu Sans, FreeSans, sans-serif;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接