在 Windows 10 的某些应用中,为什么部分文本会显示为方框?

症状

在 Windows 10 桌面版和 Windows 10 移动版上运行某些应用时,部分字符显示为一个方框或三角形框、或显示为内部带有点、问号或“x”的框,而同一应用运行在 Windows 或 Windows Phone 早期版本上时则没有出现此问题。

通常情况下,此问题涉及中东或亚洲地区语言(阿拉伯语、中文、印地语等)的文本。 对于 Windows 10 移动版,此问题主要涉及东亚语言(中文、日语和韩语)。 对于 Windows 10 桌面版,此问题通常涉及系统未配置的语言,并且出现在支持可能涉及国际语言的方案(例如,浏览 Web 及社交网络应用中的用户通知)的特定类型的应用中。

原因

我们已在影响字体的 Windows 10 中进行了一些重要改进;下面提供了有关这些改进的更多详细信息。 这些更改的不利影响在于,为 Windows 或 Windows Phone 早期版本创建的一小部分现有应用可能会受到影响。

  • Windows Phone 8.1 中包含的某些字体没有包含在 Windows 10 移动版中。

  • 以前包含在每个 Windows 桌面系统中的某些字体已移至可选字体包中,因此在所有 Windows 10 桌面系统中可能不显示。


下面提供了有关这些更改的更多详细信息。 在某些应用中,显示特定的国际化文本时,这些更改可能导致出现“方框”问题。

所有 Windows 10 版本都包括提供广泛的语言支持的字体,并且 WIndows 平台包括字体回退机制,旨在确保任何语言的文本都能始终显示清晰的字形,而不是显示为框。 但是,某些应用可能直接依赖于特定的字体以显示特定的 Unicode 字符,并没有利用 Windows 提供的字体回退机制。 在某些情况下,这些应用直接依赖于默认不在 Windows 10 系统上显示的字体。 由于应用尝试使用的字体没有在系统上显示,因此使用一些其他字体来显示文本,该字体可能不支持要显示的全部字符。 当使用不支持某个字符的字体显示该字符时,使用的是该字体中的默认“未定义”字形。 大多数字体中的“未定义”字形的外观是三角形框或其变体。

Windows 10 中重要字体改进之处概述

Windows 10 的一个关键的高级目标是使 Windows 成为适用于基于常用操作系统核心及共享应用平台(通用 Windows 平台 (UWP))构建的不同设备类别的操作系统系列。 UWP 可以启用编写和构建一次并且可以在各种设备上运行的应用,范围涵盖从 Hololens 到 Xbox 到 Surface Hub。 对于此聚合应用平台的一个要求是包含一组可在所有这些设备类别中通用的字体。 在过去的版本中,已向 Windows Phone、Xbox One 和 Windows 桌面客户端提供了不同的字体集。 Windows 10 中现已包含一个通用字体集,确保可以跨所有 Windows 10 版本和所有设备类别及外形规格在所有 Windows 10 设备上显示。 此外,这一通用字体集还提供全面的 Unicode 支持,使用仅需有限的磁盘空间的一小部分字体就能涵盖全世界几千种语言。

下文提供了通用 UWP 字体集:

Windows 10 字体列表

Windows 桌面客户端通常用于存储限制不太苛刻的设备,这样对字体就有了更大的选择空间。 按照惯例,Windows 桌面用于存储容量较大的设备,但近年来,我们看到很多新外形规格的设备(如价格较低的平板电脑)存储空间更加具有局限性。 Windows 10 的另一个关键高级目标是使 Windows 桌面客户端可以在此类价格较低的设备上更好地发挥作用。

随着 Windows 的国际化语言覆盖面不断扩大,无论指定系统上的用户实际上是否需要其他语言的字体,每个系统中都会涵盖越来越多的国际化字体。 这为字体选择器控件和对话框增加了大量选项,但与指定用户关系不大。 例如,尽管西班牙用户可能从不使用泰语,但是他/她可以从许多泰语字体中进行选择。 此外,这也为每个 Windows 桌面系统大小增加了数百兆字节。 为了减少 Windows 所需的磁盘空间容量,并提高为指定用户提供的字体选项相关性,我们将大量 Windows 字体移入了可选字体功能。

这些可选字体功能由不同的脚本进行管理,并且具有语言关联性,还会根据这些语言关联性自动安装。 例如,“简体中文补充字体”功能包含简体中文专用的字体。 如果已安装 Windows 10 的简体中文版本,则可能已经预安装了此可选字体功能。 如果安装了 Windows 10 的其他语言版本,但用户启用了简体中文输入法,或者如果用户配置文件与已包含简体中文的 Microsoft 帐户关联,并且该配置文件在设备上漫游,系统会通过 Windows 更新自动安装简体中文补充字体功能。

通过安装可选字体包来匹配系统中主动使用的语言集,我们可以在提供的字体选项数量和使用的磁盘占用空间之间达到最佳平衡。 但是,即使没有安装任何这些可选字体功能,每个 Windows 10 桌面系统仍包含常见的 UWP 字体,以确保 Windows 仍然能很好地支持 Unicode 和国际文本,确保通用 Windows 应用可以在桌面设备和每种其它外形规格上都有出色的文本显示效果。

有关 Windows 10 移动版中的字体更改的详细信息

为了使用有限数量的字体定义聚合的 UWP 字体集,Windows 10 移动版已排除 Windows Phone 8.1 中的某些字体:

  • Dengxian、Dengxian Bold

  • Estrangelo Edessa

  • Khmer UI、Khmer UI Bold

  • Lao UI、Lao UI Bold

  • Leelawadee、Leelawadee Bold

  • Lucida Sans Unicode

  • Microsoft MHei、Microsoft MHei Bold

  • Microsoft NeoGothic、Microsoft NeoGothic Bold

  • Microsoft Uighur

  • Segoe WP、Segoe WP Light、Segoe WP SemiLight、Segoe WP Semibold、Segoe WP Bold、Segoe WP Black

  • Segoe WP Emoji

  • Tahoma、Tahoma Bold

  • Urdu Typesetting、Urdu Typesetting Bold

  • Yu Gothic Bold



如果 Windows Phone 应用直接依赖于上面列出的字体之一来显示某些 Unicode 字符,并且不使用 Windows 提供的字体回退机制,则这些字符将显示为"方框"字形。

有关 Windows 10 桌面版中的字体更改的详细信息

如上所述,以前包含在每个 Windows 10 桌面版客户端系统中的一些字体已被移动到可选的字体功能中。

下表提供了可选字体功能以及代表语言关联性的完整列表。 已列出移入这些包中的精选字体;在以前的 Windows 版本中,这些字体被用作 Shell 用户界面字体,但已被更新的 Windows 字体取代。

可选字体包

语言关联性

已移入可选包的主要字体

阿拉伯语脚本补充字体

使用阿拉伯语脚本的语言;例如,阿拉伯语、波斯语和乌尔都语。

孟加拉语脚本补充字体

使用孟加拉语脚本的语言;例如,阿萨姆语、孟加拉语。

Vrinda

加拿大土著语言符号补充字体

使用加拿大音节脚本的语言;例如,因纽特语。

Euphemia

切罗基语补充字体

切罗基语。

金雀花切罗基

梵文补充字体

使用梵文脚本的语言;例如,印地语、孔卡尼语、马拉地语。

Mangal

埃塞俄比亚语补充字体

使用埃塞俄比亚语脚本的语言;例如,阿姆哈拉语、提格里尼亚语。

Nyala

古吉拉特语补充字体

古吉拉特语;使用古吉拉特语脚本的任何其他语言。

Shruti

果鲁穆奇语补充字体

旁遮普语;使用果鲁穆奇语脚本的任何其他语言

Raavi

中文(简体)补充字体

简体中文

中文(繁体)补充字体

繁体中文

MingLiU、MingLiU_HKSCS

希伯来语补充字体

希伯来语

日语补充字体

日语

Meiryo、Meiryo UI、MS Gothic、MS Mincho

高棉语补充字体

柬埔寨语;使用高棉语脚本的任何其他语言。

DaunPenh、Khmer UI

埃纳德语补充字体

埃纳德语;使用埃纳德语脚本的任何其他语言。

Tunga

韩语补充字体

韩语

Batang、Dotum、Gulim

老挝语补充字体

老挝语;使用老挝语脚本的任何其他语言。

DokChampa、Lao UI

马拉雅拉姆语补充字体

马拉雅拉姆语;使用马拉雅拉姆语脚本的任何其他语言。

Karthika

奥里亚语补充字体

奥里亚语;使用奥里亚语脚本的任何其他语言。

Kalinga

泛欧语系补充字体

无自动语言关联性。

无(所有字体在 Windows 10 中都是新字体)。

僧伽罗语补充字体

僧伽罗语;使用僧伽罗语脚本的任何其他语言。

Iskoola Pota

叙利亚语补充字体

使用叙利亚语脚本的语言。

Estrangelo Edessa

泰米尔语补充字体

泰米尔语;使用泰米尔语脚本的任何其他语言。

Latha

泰卢固语补充字体

泰卢固语;使用泰卢固语脚本的任何其他语言。

Gautami

泰语补充字体

泰语;使用泰语脚本的任何其他语言。

Leelawadee

如果应用直接依赖于上面列出的字体之一来显示某些 Unicode 字符,并且未使用 Windows 提供的字体回退机制,且如果系统未安装包含该字体的可选字体包(通常是因为系统和用户配置文件未配置为启用关联的语言),则这些字符将显示为"方框"字形。

针对 Windows 10 用户的推荐

如果你在 Windows 10 桌面上的某些应用中遇到这些情况,可以向应用开发人员提供反馈,建议他们对适用于 Windows 10 的应用进行更新。 同时,你还可以安装一个或多个可选字体功能,应用可能需要此功能才能正常运行。 为此,请执行以下步骤:

如果您了解显示有误的文本的语言并且经常使用该语言,可以执行以下操作:

如果您了解所涉及的语言,可以将该语言添加到您的用户配置文件,所有关联的可选字体功能将自动安装。 (注意:还可以安装与语言相关的其它可选功能,例如,文本预测或拼写检查。)

  • 从“开始”菜单中,打开“设置”。

  • 选择“时间和语言”。

  • 选择“区域和语言”。

  • 选择“添加语言”。

  • 选择特定语言。

在不更改语言设置的情况下启用可选字体功能:

如果您不了解特定的语言,或者了解显示有误的文本语言,但不想将该语言添加到您的用户配置文件中,可以安装所有可选字体功能,而无需启用任何其他语言。

  • 从“开始”菜单中,打开“设置”。

  • 选择“系统”。

  • 选择“应用和功能”。

  • 选择“管理可选功能”。

  • 选择“添加功能”。

  • 从列表中选择任意可选字体功能。


如果您遇到某些 Windows Phone 应用中描述的问题,您可能希望联系应用开发人员,建议他们使用此处提供的指南更新其应用。 注意: Windows 10 手机版不支持任何可选的字体功能。

面向 OEM 和系统管理员的建议

如果你在 Windows 10 部署映像中配置语言包或国际设置,则应使用部署映像服务和管理 (DISM) 工具以添加与你添加到映像中的语言包相关联的可选字体包(以及其它可选的与语言相关的功能)。 下面的文章提供了有关可选字体功能以及关联的 Windows 10 语言包语言的详细信息:

按需功能

另请参阅下面的文章,了解 Windows 10 语言包以及所有可选的语言相关功能的概述:

向 Windows 映像添加语言

如果你是系统管理员,并且知道你的方案需要来自一个或多个可选字体功能的字体,则即使你未将关联的语言包包括在部署映像中,你也仍然可以通过使用 DISM 将任何字体功能添加到部署映像中。

面向开发人员的建议

如果你的某个 Windows 手机版应用依赖于 Windows 10 移动版中已排除的字体之一,或者某个 Windows 桌面版应用依赖于已迁移到可选字体包中的某个字体,并且如果你的应用未使用 Windows 提供的字体回退机制,则你可能会受 Windows 10 中的字体更改影响。 最有可能受到影响的应用类型和应用方案包括:

  • 使用不提供字体回退的级别较低的图形 API 进行复杂布局的浏览器或其他应用(例如,使用 ETO_GLYPH_INDEX、ScriptTextOut 的 DrawGlyphRun、ExtTextOut)。

  • 使用第三方图形库的游戏或其他应用。

  • 显示的文本涉及超出该应用或 Windows 显示语言范围的语言或用户使用的其他语言的应用方案;例如,Web 浏览、从其他用户处接收文本消息或通知。

如果您的应用(尤其是在上述方案中)体现出所描述的问题,则应该检查应用所依赖的字体。 请参阅以下文章,了解推荐给 Windows 10 上的应用使用的字体:

Windows 10 字体列表

该文章中所列字体可以确保在所有 Windows 10 设备上显示。

如果您的应用使用 DirectWrite,您可能想要考虑利用 DirectWrite 提供的字体回退机制。 即使您使用的是级别较低的 API 并希望实现自己的字体回退,DirectWrite 的 API 可提供默认映射,供您用于对自己的自定义映射进行补充。 请参阅以下 MSDN 文章,了解主要的 API:

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×