【发布时间】:2011-02-02 19:49:46
【问题描述】:
我有一个 delphi 7 表单:
和我的代码:
当我在 Windows 7 中运行此表单时,我看到:
在设计时,表单的第一个标签中有波兰字母,但在运行时没有。它在 Vista 或 Windows XP 上看起来不错。当我在代码中设置第二个标签的标题时,一切正常并且字符被正确编码。
Windows 7 上顶部标签的前 5 个代码:65 97 69 101 83
Windows Vista/XP 上顶部标签的前 5 个代码:165 185 202 234 140
每个系统底部标签的前 5 个代码:165 185 202 234 140
Windows 7 更改编码,为什么?我的系统设置似乎没问题。我在控制面板中为非 unicode 应用程序设置了正确的语言。
编辑
此问题不仅与表单上的标签有关,还与 FastReport(切换到 EASTERN_CHARSET 解决问题)或通过 COM 接口访问 Microsoft Excel 相关。
【问题讨论】:
-
我不熟悉 Delphi,但表单设计器是否允许指定与默认代码页不同的编码(即 Windows-1250)?这是什么版本的Delphi? IIRC Unicode 支持最近才添加...
-
@0xA3 这是 Delphi 7,它不是 unicode 应用程序,但我在区域设置中为非 unicode 应用程序设置了波兰语。这就是为什么 Label2 显示正确,但第一个仍然不起作用的原因。
-
您是否检查过 DFM 中如何定义 Label1 和 Label2? Label1.caption 是如何保存在 DFM 中的?
-
@Ken Bourassa DFM 商店
#260#261#280#281#346#347#262#263#323#324。这看起来像 Unicode。字母匹配unicode码,所以dfm没有错。 -
在 XP 或 Vista 兼容模式下运行应用是否有效(右键单击 .exe,属性 -> 兼容性)?
标签: delphi encoding windows-7 delphi-7