为什么 charmap 中缺少一些 unicode 字符?

为什么 charmap 中缺少一些 unicode 字符?

在 Windows 中,字符映射表似乎不会显示所有的 Unicode 字符,即使选定的字体支持它们,并且“字符集”选择器是“Unicode”。

例如,小信封 U+2709 ✉ 永远不会显示,即使该字符同时存在于 Segoe UI 和 Consolas 中(至少 Visual Studio(Consolas)和 Google Chrome 中显示的示例网页(Segoe UI)都可以正确显示该字符)。

在“转到 Unicode”中输入 2709 时,会重定向到 U+2776 ❶。

为什么缺少一些unicode字符charmap

答案1

你确定这些字符符合字体要求吗?

浏览器搜索其他字体来查找缺失的字符 - 因此您不能使用浏览器来测试字体内容。

您也不能信任应用程序——在这里,我在记事本中使用阿拉伯字体来显示中文字符,我强烈怀疑这些字符不在阿拉伯字体中。在我看来,应用程序(或底层 Windows 库)正在搜索其他字体来提供缺失的字符。

显示混合语言的记事本屏幕截图

如果你需要独立的证据,你可以尝试FontForge或其他第三方字体工具。

答案2

据微软开发者网络称,“字体技术“ 页:

每个应用程序和每个操作系统都可以定义自己的倒退 字体适用于任何 Unicode 脚本范围。Microsoft 努力确保其应用程序和产品的一致性,并包含一个 API(自 Windows 8 起)来为应用程序提供首选字体回退建议。

并且...

Noto 字体系列使用 [字体链接] 模型通过组合特定于脚本的字体文件来创建看起来像单个字体的内容...字体链接需要指定链接在一起的字体的优先级,就像在更改一样。链中较晚的字体只能将字形添加到较早的字体中;您无法覆盖或替换早期字体中的字形。

也...

字体替换由应用程序实现,用于将不可用字体的请求替换为可用字体。通常,应用程序使用 PANOSE 信息(一组概括字体样式的数值)来查找最合适的匹配字体。

最后,为了充实,PostScript 字体类型 0

A复合字体由引用多个后代字体的高级字体组成。


我会更详细地讲解,但这应该能让您了解为什么在文本显示中而不是在字体本身的显示中得到字形。以下链接将进一步深入探讨:

如何更改/配置字体后备?

支持 Windows 2000 的多语言文本布局和复杂脚本

答案3

它位于 Ariel Unicode MS 字体中。检查维基百科页面,无需为其下载字体。

http://en.wikipedia.org/wiki/Unicode_font 查看哪些字体支持哪些字符。

在此处输入图片描述

相关内容