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

Ars*_*nko 8 windows windows-7 encoding unicode special-characters

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

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

在“转到 Unicode”中键入 2709 时,这会重定向到 U+2776 ?。

为什么某些 unicode 字符从 中丢失charmap

小智 5

根据微软开发者网络“字体技术”页面:

\n\n
\n

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

\n
\n\n

并且...

\n\n
\n

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

\n
\n\n

也...

\n\n
\n

字体替换是由应用程序实现的,用于将对\n 不可用字体的请求替换为可用的字体。\n 通常,应用程序使用 PANOSE 信息(一组总结字体\xe2\x80 的数字\n 值) \x99s 风格)来找到最合适的\n 匹配字体。

\n
\n\n

最后,为了完整起见,PostScript Font Type 0

\n\n
\n

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

\n
\n\n
\n\n

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

\n\n

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

\n\n

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

\n


Red*_*ick 4

你确定这些字符在字体中吗?

浏览器搜索其他字体以查找丢失的字符 - 因此您无法使用浏览器来测试字体内容。

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

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

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