我有一个 Delphi 7 应用程序。我需要能够为非 unicode 程序获取默认的 Windows 字符集。我知道 DEFAULT_CHARSET 设置了它,但我需要确切地知道它是哪个字符集,以便我可以将它与其他字符集进行比较。这是可能的吗?
谢谢!
最佳答案
GetFontData 正在调用 GetObject
并使用 LogFont.lfCharSet
来确定字符集
GetObject called with HFONT 将填充 LogFont
这里的定义是
GetCPInfoEx with CP_ACP 提供 CPINFOEX 结构将提供 系统默认 Windows ANSI 代码页。
var
CPInfoEx:TCPInfoEx;
CD:Cardinal;
CharsetInfo:TCharSetInfo;
CSN:String;
begin
If GetCPInfoEx(CP_ACP,0,CPInfoEx) then
begin
CD := CPInfoEx.Codepage;
if TranslateCharsetInfo(CD,CharsetInfo,TCI_SRCCODEPAGE) then
begin
CharsetToIdent(CharsetInfo.ciCharset,CSN);
Showmessage(CPInfoEx.CodePageName+' - '+IntToStr(CharsetInfo.ciCharset)+' - '+CSN);
end;
end;
end;
关于Delphi - 获取 Windows 的默认非 unicode 字符集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15729116/