积极答复者
同一个汉字,ScriptStringOut可以输出,ScriptTextOut不能正确输出

问题
答案
-
你好,
感谢您在MSDN论坛发帖提问。
>>同一个汉字,ScriptStringOut可以输出,ScriptTextOut不能正确输出
所有 Windows 10 版本都包括提供广泛的语言支持的字体,并且 WIndows 平台包括字体回退机制,旨在确保任何语言的文本都能始终显示清晰的字形,而不是显示为框。 但是,某些应用可能直接依赖于特定的字体以显示特定的 Unicode 字符,并没有利用 Windows 提供的字体回退机制。 在某些情况下,这些应用直接依赖于默认不在 Windows 10 系统上显示的字体。 由于应用尝试使用的字体没有在系统上显示,因此使用一些其他字体来显示文本,该字体可能不支持要显示的全部字符。 当使用不支持某个字符的字体显示该字符时,使用的是该字体中的默认“未定义”字形。 大多数字体中的“未定义”字形的外观是三角形框或其变体。
建议使用不提供字体回退的级别较低的图形 API 进行复杂布局的浏览器或其他应用(例如,使用 ETO_GLYPH_INDEX、ScriptTextOut 的 DrawGlyphRun、ExtTextOut)。
更多细节你可以参考以下链接:https://support.microsoft.com/zh-cn/help/3083806/why-does-some-text-display-with-square-boxes-in-some-apps-on-windows-1
Best Regards,
Jeanine Zhang- 已标记为答案 樊亚鹏 2019年5月8日 5:37
全部回复
-
你好,
感谢您在MSDN论坛发帖提问。
>>同一个汉字,ScriptStringOut可以输出,ScriptTextOut不能正确输出
所有 Windows 10 版本都包括提供广泛的语言支持的字体,并且 WIndows 平台包括字体回退机制,旨在确保任何语言的文本都能始终显示清晰的字形,而不是显示为框。 但是,某些应用可能直接依赖于特定的字体以显示特定的 Unicode 字符,并没有利用 Windows 提供的字体回退机制。 在某些情况下,这些应用直接依赖于默认不在 Windows 10 系统上显示的字体。 由于应用尝试使用的字体没有在系统上显示,因此使用一些其他字体来显示文本,该字体可能不支持要显示的全部字符。 当使用不支持某个字符的字体显示该字符时,使用的是该字体中的默认“未定义”字形。 大多数字体中的“未定义”字形的外观是三角形框或其变体。
建议使用不提供字体回退的级别较低的图形 API 进行复杂布局的浏览器或其他应用(例如,使用 ETO_GLYPH_INDEX、ScriptTextOut 的 DrawGlyphRun、ExtTextOut)。
更多细节你可以参考以下链接:https://support.microsoft.com/zh-cn/help/3083806/why-does-some-text-display-with-square-boxes-in-some-apps-on-windows-1
Best Regards,
Jeanine Zhang- 已标记为答案 樊亚鹏 2019年5月8日 5:37