如何在delphi中获取操作系统的语言是双字节?

how to get language of operating system is double byte in delphi?

我想检测操作系统的语言是否为双字节。 要获取我正在使用 windows 的 GetLocaleInfo 函数的语言。但我想检测语言是否为双字节。我可以通过获取语言名称并决定它是否是双字节来做到这一点(即如果语言是日语那么它的双字节)但是有没有其他方法可以直接获取操作系统双字节语言或不是。

我用来获取语言的代码:

procedure GetLanguage();
    var
    Buffer : PChar; 
     Size : integer;
    begin
      Size := GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, nil, 0);
      GetMem(Buffer, Size);
      try
        GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, Buffer, Size);
        Writeln(Buffer);
      finally
        FreeMem(Buffer);
      end;
    end;

你叫什么"double byte"?你的意思是在使用AnsiString的时候,可能会有两个AnsiChar编码的字符?

使用以下代码:

FarEast := GetSystemMetrics(SM_DBCSENABLED) <> 0;

已编辑,因为 SysLocale.FarEast 在 Unicode Delphi 上被强制为真。