delphi - 在 Delphi 2007 中正确显示德语特殊字符

标签 delphi localization delphi-2007

我需要在 Delphi 2007 中正确显示德语特殊字符,因为现在我得到的字符“ü”看起来像“?”在标签组件中

任何建议

谢谢

最佳答案

当文本经过失败的代码页转换时,会出现意外的问号 (?)。

由于 Delphi 2007 不支持 Unicode,因此标签的 CaptionAnsiString。您放入其中的文本至少经过一次失败的代码页转换,您必须弄清楚转换发生的位置以及失败的原因。

代码页转换的常见原因:

  • Label 的文本来自 DFM(您在对象检查器中编写)。您的机器和测试机器都使用不同的“非 Unicode 应用程序的默认代码页”。在您的计算机上进行测试时,您应该永远不会看到这种情况。
  • 您的标签文本来自数据库,并且数据库的代码页错误或者您的测试机器的代码页错误:当 Delphi 尝试转换代码页时,它会失败。
  • 您的标签字体的字符集属性错误。

下面是一些将 ü 字符放入标签中进行测试的代码。该代码选择 EASTEUROPE_CHARSET 所以我知道我正在处理 code page 1250 。我这样做是因为其他字符集常量要么选择不可用的代码页(不包括“ü”),要么选择取决于操作系统的代码页(即:没有实际更改)。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Font.Charset := EASTEUROPE_CHARSET;
  Label1.Caption := Char(252);
end;

关于delphi - 在 Delphi 2007 中正确显示德语特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773321/

相关文章:

delphi - 是否可以在 Delphi 中组合资源字符串?

delphi - 哪个日志库更好?

asp.net - Delphi for .NET 在 .NET 库搜索目录中找不到共享文件(“[DCC 错误] F1026 文件未找到)”

ios - 访问 iOS 7 中的所有语言?

delphi - 缓慢的内存释放(引用结构)-我的解决方法是一个好方法吗?

delphi - 我如何获取记录字段值

delphi - Delphi 7 中停止事件传播

c# - WCF 服务器中的本地化

ios - 在 iOS 上使用 swift 将出生日期转换为带有本地化年份标签的年龄

delphi - 在现有库 ProjectGroup 中组织单元测试