Windows 7 上的 WideChar 显示问题

Posted

技术标签:

【中文标题】Windows 7 上的 WideChar 显示问题【英文标题】:WideChar display issue on Windows 7 【发布时间】:2012-01-04 07:18:25 【问题描述】:

我正在开发一个小应用程序。 WideChars(希腊字母)的标题(显示在标签上的文本)在 Vista 和 Windows7 下几乎在所有情况下都是正确的,但在某些情况下(在某些计算机上)我只有空方块。语言是一样的,操作系统也是。什么会导致它? 请帮助我如何解决这个问题。

【问题讨论】:

【参考方案1】:

问题是出现故障的计算机上的字体没有您正在显示的字符的字形。这通常发生在 XP 机器上。 Vista 带有更完整的字体。

您可能需要分发字体,或鼓励用户安装语言包,以确保保真度。

【讨论】:

更进一步,您可以在 EXE 中嵌入字体并在应用运行时自动分发:delphi.cjcsoft.net/viewthread.php?tid=47317 请注意,字体也受版权保护,您可能无权分发它们!【参考方案2】:

如果您正在测试您的应用程序的希腊语翻译,您应该在 Windows 的希腊语安装上对其进行测试。英文版的 Windows 不一定附带支持您的 Unicode 字符范围的字体。

Windows 7 Ultimate 和 Enterprise 通过 Windows Update 提供额外的语言包作为可选更新。使用这些版本的 Windows 7 的用户可能已经安装了可选语言包,其中可能包括支持您正在使用的希腊字母的字体版本。其他版本的 Windows 7 不包含其他语言包。 Windows 实际上只保证完全支持已安装的语言,或共享公共字符集的语言。您不能依赖具有特定语言包的用户。

如果您根据用户的语言环境设置翻译程序,这很可能不是真正的问题。以希腊语运行程序的用户将安装支持希腊语的 Windows。

【讨论】:

以上是关于Windows 7 上的 WideChar 显示问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows 7 上的 Kivy 开发环境

将两个字节合并为 WideChar

Windows 7 上的 PostgreSQL ODBC 驱动程序未显示

Windows上的Qt 5.7黑屏

WideChar 和 AnsiChar 有啥区别?

Delphi中不兼容的char和widechar