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

时间:2011-07-21 08:37:30

标签: delphi localization delphi-2007

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

任何建议

由于

1 个答案:

答案 0 :(得分:5)

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

由于Delphi 2007未启用Unicode,因此您的标签CaptionAnsiString。您放在那里的文本至少会丢失一个代码页转换,您必须弄清楚转换发生的位置以及转换失败的原因。

代码页转换的常见原因:

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

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

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