【发布时间】:2014-06-21 11:38:10
【问题描述】:
我有一个多语言 MFC 应用程序,它将本地化数据存储在 DLL 中的字符串表中。当我在 Windows 7 32 位上以我的母语(波斯语)运行应用程序时,一切正常,并且字符串显示正确。但是在 Windows 7 64 位上,所有文本都变成了问号。
我已经为系统区域设置了适当的值。据我所知,除了 64 位、32 位之外,两个系统之间没有区别。
编辑:
- 我尝试将字体更改为 Tahoma,但没有成功。然而
检查 64 位和 32 位的差异我注意到它们都
使用相同的
Segoe UI字体,如前所述,运行 32 位版本 没有问题。 - 我也可以在波斯语中键入、搜索和命名文件夹,而无需使用 问题,只有应用程序有问题。
【问题讨论】:
-
64位操作系统有语言支持吗?
-
@JerryYYRain 是的,当然。
-
所有文本,还是只有控制台输出?
-
@rubenvb 没有控制台输出。这是一个 MFC 应用程序,它有 UI,标签、文本框、消息框等中的所有文本都显示为问号。
-
不是字体问题,缺少的字形显示为矩形,而不是问号。这是一个文本编码问题,您使用的字符在系统代码页中没有表示。仍然依赖代码页是非常低效的,MFC 也将很快停止支持它们。使用有效的 UNICODE 重新构建您的项目。
标签: c++ windows-7 mfc windows-7-x64