我有一个 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/

10-12 05:14