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

标签 delphi winapi delphi-10.1-berlin

我想检测操作系统的语言是否是双字节。 要获取我正在使用 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;

最佳答案

什么叫“双字节”?你的意思是当使用AnsiString时,它可能有用两个AnsiChar编码的字符?

使用以下代码:

FarEast := GetSystemMetrics(SM_DBCSENABLED) <> 0;

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

关于delphi - delphi中如何获取操作系统的语言是双字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388929/

相关文章:

c++ - window 打不开

delphi - 如何定义 TFormatSettings 常量 (Delphi 10)

multithreading - 两个不同的 TThread 后代如何共享 OnTerminate 处理程序?

c# - 是否可以在自己的 .Net 应用程序中嵌入 Windows Sidebar Widgets

c - 在 Delphi 中调用 C++ DLL 的问题

c++ - 使用 GetAsyncKeyState() 的关键监听器/记录器

delphi - 如何可靠地检测剪贴板上的 RITCHTEXT 格式?

delphi - 判断ClientDataSet有变化的快速方法

json - 如何在Delphi XE3中解析JSON对象中的指定值?

Delphi TList<T> 复制到另一个 TList 中?