我需要在 Delphi 2007 中正确显示德语特殊字符,因为现在我得到的字符“ü”看起来像“?”在标签组件中
任何建议
谢谢
最佳答案
当文本经过失败的代码页转换时,会出现意外的问号 (?
)。
由于 Delphi 2007 不支持 Unicode,因此标签的 Caption
是 AnsiString
。您放入其中的文本至少经过一次失败的代码页转换,您必须弄清楚转换发生的位置以及失败的原因。
代码页转换的常见原因:
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/