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