我需要在Delphi 2007中正确显示德语特殊字符,因为现在我得到这样的字符“ü”看起来像“?”在标签组件中
任何建议
由于
答案 0 :(得分:5)
?
)。由于Delphi 2007未启用Unicode,因此您的标签Caption
为AnsiString
。您放在那里的文本至少会丢失一个代码页转换,您必须弄清楚转换发生的位置以及转换失败的原因。
代码页转换的常见原因:
Label
的文本来自DFM(您在Object Inspector中编写)。您的计算机和测试计算机都使用不同的“非Unicode应用程序的默认代码页”。在机器上进行测试时,永远不会看到这一点。这里有一些代码可以将ü
字符放在Label中进行测试。代码选择EASTEUROPE_CHARSET
,所以我知道我正在处理code page 1250。我这样做是因为其他Charset常量要么选择不可用的代码页(不包括“ü”),要么选择依赖于操作系统的代码页(即:没有实际更改)。
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Font.Charset := EASTEUROPE_CHARSET;
Label1.Caption := Char(252);
end;