2

考虑一个编码为 UTF-8 的 HTML 页面,其中出现了一个奇怪的 unicode 字符——形成一种罕见的语言或其他一些 Unicode 特性。

这种情况是否有标准行为?浏览器会尝试找到合适的字体吗?可以使用 HTML 参数配置浏览器行为吗?

4

2 回答 2

5

CSS 2.1字体匹配算法意味着浏览器应为每个字符从适用font-family声明中建议的字体中选择一个字形,如果不这样做,则使用与浏览器相关的默认字体。如果它甚至不包含该字符,那么“UA [= 浏览器] 可能会使用其他方式来确定该字符的合适字体。UA 应该将没有合适字体的每个字符映射到 UA 选择的可见符号,最好是来自 UA 可用字体之一的“缺失字符”字形。”</p>

所以它定义得很好,但是有浏览器依赖。该算法允许浏览器显示丢失的字符符号,即使系统中的某些字体包含它的字形也是如此。现代浏览器通常不这样做,但 IE 在这方面也不是特别现代。此外,浏览器中存在一些怪癖和奇怪之处,部分原因是它们有时无法从字体本身获取有关字体的正确信息。

您无法配置基本行为,但您可以按照其规则进行操作。最有效的是使用作者提供的字体系列。如果你有一个奇怪的字符,你应该尝试确定一组包含它的字体并编写合适的 CSS 规则。然而,对于非常罕见的字符,选项实际上是:1)使用可下载的字体,2)使用图像。更多信息:http ://www.cs.tut.fi/~jkorpela/html/characters.html

于 2012-04-09T13:14:16.930 回答
3

是的,浏览器通常会尽量以某种字体显示它。某些浏览器/操作系统比其他浏览器/操作系统做得更好。如果页面的默认字体不包含该字符,有些人可能会简单地放弃,但大多数人会尝试查找包含该字符的其他已安装字体。如果没有匹配,浏览器将显示一些占位符,通常是一个正方形。

就这样。没什么奇怪的,这就是字体渲染的工作原理。

于 2012-04-09T12:53:38.577 回答