3 回答
这可能是由于不同的平台和浏览器具有不同的默认字体和字体实现。
关于font-family
SO 是:
Arial,Liberation Sans,DejaVu Sans,sans-serif
所以不同的字体将适用于不同的平台。
在您的 Mac 示例中,不同的浏览器以不同的方式显示“缺失”字形 - Chrome 带有一个简单的正方形,FF 带有在框中呈现的缺失字形的十六进制 Unicode(在这种情况下0CA0
)。
字形不被网络浏览器用于显示页面的字体所覆盖,该字体要么是浏览器默认字体,要么是页面上 CSS 指定的字体。您需要确保通过 CSS 指定字体,这很可能在所有环境中都保证了此字形。以宋体为例。
此问题与使用的字符编码无关。使用的字符编码中的问题宁愿导致Mojibake,而不是在空框或带有十六进制代码的框中表示 Unicode 代码点,这些代码点基本上识别所用字体中不可用的字形。
您发布的内容不包含 U+3232 PARENTHESIZED IDEOGRAPH HAVE “㈲”,而是三个字符序列 U+0CA0 U+005F U+0CA0,即两个 KANNADA LETTER TTHA 字符之间的 LOW LINE。我不知道发生了什么,在哪里。发布 URL 可能会有所帮助。
由于不同的字体库,计算机之间的渲染存在差异。屏幕截图中的前两个渲染表明缺少字形,即系统中没有包含字符 U+0CA0 的字体。
Firefox 和 Chrome(与 IE 不同)倾向于扫描所有可用的字体来查找字符。但是罕见的特殊字符通常在字体中的实现并不令人满意,因此为了获得最佳效果,请查看支持该字符的字体列表,并按优先顺序在您的字体系列声明中指定它们。这也有助于可怜的 IE 在可用时找到合适的字体。
如果你想要的字符真的是 U+3232,那么看看 http://www.fileformat.info/info/unicode/char/3232/fontsupport.htm 它很可能不包括所有的字体,因为新的字体出现了。但是对于这个字符,Arial Unicode MS 可能是绝大多数浏览情况下都会使用的字体——如果它不可用,则会看到缺少字形的指示符。