谷歌浏览器无法显示特殊字符,而其他浏览器可以。

13

我想在面包屑导航中显示字符代码❯,它形成了这个箭头:❯。

在Firefox、Opera和IE中可以正确显示,但在Chrome中无法显示。我是否做错了什么,还是这是Chrome的一个错误?有没有任何解决方法?

我正在使用Windows 7专业版64位上的Google Chrome版本32.0.1700.107 m。


1
Chrome 32 在 Win7 上显示正常。 - Zoey Mertes
在Chrome中,Unicode可能会很棘手,特别是在超出BMP范围时。我相信您可以使用Unicode对来实现这一点。类似于"\uD800\uDC95"或𐂕。这里有一个很好的资源,可以了解更多信息并解决问题。http://mathiasbynens.be/notes/javascript-unicode - geedew
请注意,❯ 是 U+276F,并且完全在BMP范围内。 - Jim Garrison
@JukkaK.Korpela 我之前并不知道这个。但现在听起来非常合理,谢谢! - geedew
我刚刚在朋友的电脑上使用Chrome进行了检查,它也无法正确显示(相同的缺失字形框形状)。 - Keavon
显示剩余2条评论
3个回答

9
这几乎是无法在IE 9上显示字符的复制,但由于该问题特别针对Chrome,因此我将复制答案并进行修改:

浏览器(包括Chrome)有时在渲染字符时会遇到困难,因为它不存在于元素指定的字体中,或者在缺少这些规范的情况下,存在于浏览器默认字体中。 浏览器应该检查系统中的所有字体以找出包含字符的字体,但有时它们未能做到。 有时原因是某些字体具有声称其具有字符字形的信息(因此浏览器停止搜索),但实际上并没有。

解决方法是指定已知包含字符的字体列表。 对于“❯”U + 276F HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT(一种相当特殊的字符),字体覆盖范围非常有限。 大多数计算机都没有包含它的字体。 您可以指定以下字体列表:

 font-family: DejaVu Sans, Symbola, Everson Mono, Dingbats, Segoe UI Symbol,
 Quivira, SunExt-A, FreeSerif, Universalia, unifont;

但大多数用户缺少所有这些字体。您可以考虑使用可下载字体(web font)和@font-face。DejaVu字体,Symbola和Quivira是免费字体,尽管它们的文件大小相当大。

或者,考虑使用图像。这个字符是一种装饰性的dingbat,是一种特殊的图形而不是一个字符,但由于遗留原因,它已被编码为Unicode字符。

更多信息:HTML中使用特殊字符的指南


我检查了Open Sans字形列表,但没有找到这个字符。然而,有一件事让我相信它与字体无关,就是该网站上的符号似乎使用自己的字体来显示其符号,但未能显示(尽管页面上几乎所有其他字体都能显示):http://character-code.com/arrows-html-codes.php - Keavon
@Keavon,该页面声明了font-family: 'Source Sans Pro',Helvetica,Arial,sans-serif,这意味着对于U+276F,浏览器将使用默认的无衬线字体。 - Jukka K. Korpela
它在Mac上总是有效...(对于Safari,FF,Chrome,Opera和我能找到的每个文本字段的衬线字体,无衬线字体,Arial,等宽字体) - bjb568
@bjb568,如果你在安装了Font Information插件的Firefox上测试它(如果有的话),你可以检查实际使用的字体是什么。当font-family中列出的特定字体都不包含该字符时,在不同的浏览器上可能会有所不同。 - Jukka K. Korpela

1

你是否尝试使用

htmlspecialchars(string)

或者

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-8">


使用 echo '<p>' . htmlspecialchars('❯') . '</p>'; 没有起作用,第二个选项也不行。 - Keavon
它适用于您的解决方案,还是包括此SO页面上的所有页面? - Keavon
应该能正常工作,我已经试过了,在我的VPS和个人电脑上都完美运行。 - Marcus Schack-Abildskov
很奇怪。我重新安装了Chrome(但保留了配置文件),它仍然无法正常工作。我还尝试了隐身模式,但仍然显示缺失字符框。 - Keavon
你认为即使我看不到生产网站上的字符,使用该字符是否安全? - Keavon

-2

第一个链接是 U+10095,而不是 &#10095;,后者是 U+276F,不需要代理对。 - Jim Garrison

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