一些 Unicode 字符在其他地方能用,但在 Firefox 上却不行,为什么?

一些 Unicode 字符在其他地方能用,但在 Firefox 上却不行,为什么?

我在 Firefox 上遇到了问题。正如标题中所述,一些 Unicode 字符被替换为带有数字的奇怪方块。问题是,这只在 Firefox 上出现,在 Open Office 和 Opera 上均不会出现。

例如,如果我查看这个维基百科页面,我有一个不同的结果火狐歌剧

我应该怎么办 ?

我已经按照另外两个关于类似问题的帖子中的建议进行了操作(“为什么 Firefox 上只能显示某些 Unicode 字符?“ 和 ”为什么 Firefox 无法呈现某些字符?") ;遗憾的是,这还不够:我的电脑和 Firefox 本身上都安装了 Arial,而且我还安装了 Code2000 ;但这并没有改变任何东西。我的 Firefox 设置似乎也不错。

那么问题出在哪里?

非常感谢您的帮助!

更新:我还安装了 DejaVu 和 DejaVuLGC,但什么都没变。事实上,我可以强制 Firefox 只使用这种字体,然后会出现一些(不是全部)缺失的字符;但这不是解决方案,因为 Opera 不必这样做就可以正确显示这些字符(以及其他一些字符)。

例如,考虑这一页。 和我通常的 Firefox 设置, 我懂了。当我把它们改成这些激进的新设置, 我懂了。看看顶部的正常文本的字体;显然,它是 DejaVu;这并不理想:Opera 做得更好

答案1

我在这里更新,因为我遇到了同样的问题。对我来说,真正简单的解决方案是安装 GNU Unifont。它是 FOSS,并且具有大量的 unicode 字符(如果您觉得需要它):(使用“标准”版本,我可以显示 OP 上面列出的页面中的所有字形)

网页:http://unifoundry.com/unifont.html

存在于大多数 Linux 发行版存储库中。

在 Ubuntu 中:sudo apt-get install ttf-unifont

答案2

如果您仔细查看 Opera 的屏幕截图,您会发现那里也存在问题。Firefox 上缺失的字符在 Opera 上也缺失,它们只是被各种空矩形代替,而不是带有十六进制数字的矩形。关于差异的问题的答案是,浏览器对缺失字形问题的处理方式不同。

Firefox 实际上可以更好地处理这种情况,它会显示无法渲染的字符身份的指示(尽管是技术指示)。CSS 字体模块 3 级 CR 建议,在第 5.2 节中匹配字体样式:“8. 如果某个特定字符无法使用任何字体显示,则用户代理应通过某种方式表明未显示该字符,显示缺失字形的符号表示(例如,使用 Last Resort 字体)或使用默认字体中缺失的字符字形。”

至于为什么有些字符在两种浏览器上都无法显示,请查看你提到的问题的答案。一般答案是,你只需要合适的字体。例如,@mgkrebbs 在评论中提到的字符 U+A78D 相对较新(Unicode 5.2),并且它的字体支持因此相当有限。它尚未添加到 Arial Unicode MS,并且可能永远不会添加到 Code2000(现在似乎已放弃软件)。实际上,您可能希望下载并安装DejaVu 字体系列看见了。

答案3

通过安装以下软件包,我成功修复了 Linux 上无法识别的字符问题:

apt-get 安装 xfonts-unifont ttf-unifont

上述命令假设使用 Debian 系统,对于其他发行版,您可能需要使用其他包管理器和/或特定包名称。您可能还需要在最开始添加“sudo”。

相关内容