为什么 Win32 应用程序在一台 Windows 10 计算机上正确显示韩语字符,但在另一台具有相同版本和语言包的计算机上却不能正确显示韩语字符?

为什么 Win32 应用程序在一台 Windows 10 计算机上正确显示韩语字符,但在另一台具有相同版本和语言包的计算机上却不能正确显示韩语字符?

我们公司支持 Win32 应用程序。我们的一位客户同时使用英语和韩语(Hangul)字符。两台计算机中的一台在特定字段集内正确显示韩语字符,而另一台则错误地显示韩语字符,例如:ÁÖ´ÔÀÇ Á¦ÀÚ±³È(以防万一在发布时转换为 Hangul: 垃圾文本)。在支持 RTF 的字段中,文本如下所示:주님의 제자교회

两台计算机都是 Windows 10 Pro 版本 1809 都具有韩语语言包,并且都可以在其他应用程序中显示韩语。我也在我们办公室使用 Windows 10 版本 1903 重复了这个问题。

两台计算机都使用相同的可执行文件和数据集。用户可以通过指向办公室服务器的快捷方式启动该程序。

另一个与这个问题非常相似的问题是这里但是那家公司并没有两台计算机,一台工作,另一台不工作。

有人知道我应该检查什么吗?

答案1

我怀疑这是由于系统区域设置所致,该设置适用于非 Unicode 应用程序。它与 Windows 7 中的位置相同,但更难访问。

  1. 首先,我们需要打开旧的 Region 控制面板小程序。您可以通过以下三种方式之一执行此操作:

    • 启动intl.cpl,或
    • 打开旧的控制面板并转到“时钟和区域”=>“更改日期、时间或数字格式”,或者
    • 打开新的“设置”应用程序,单击右侧的“其他日期、时间和区域设置”,然后单击应出现的旧控制面板中的“更改日期、时间或数字格式”。

    这应该会调出这个小程序:

    控制面板小程序的屏幕截图

  2. 单击“管理”选项卡并检查标有“非 Unicode 程序的语言”的部分。我怀疑它们会有所不同。使用“更改系统区域设置...”将它们更改为匹配。

    管理选项卡的屏幕截图

请注意,这是一个系统范围的设置,可能会破坏非 Unicode 应用程序,这些应用程序假设 Windows 处于默认语言环境(通常是西欧的某个变体)。曾经有一个名为 AppLocale 的工具可以根据每个程序设置语言环境,但在 XP 之后就停用了。如果您在 Windows 10 上需要它,最好的选择是区域设置模拟器

也就是说,现在大多数程序都支持 Unicode,因此更改系统区域设置可能不会对您正在使用的旧程序产生太大影响。

相关内容