我遇到了一个“问题签名”,如下所示,其中包含“区域设置 ID”。这是什么意思?
Problem signature:
Problem Event Name: PowerShell
NameOfExe: powershell.exe
FileVersionOfSystemManagementAutomation: 10.0.10105.0
InnermostExceptionType: System.ArgumentException
OutermostExceptionType: System.ArgumentException
DeepestPowerShellFrame: werShell.ConsoleHost.InitializeStandardInputReader
DeepestFrame: System.IO.FileStream..ctor
ThreadName: Consol.. main thread
OS Version: 6.1.7601.2.1.0.256.4
Locale ID: 1033
答案1
事实证明,Microsoft Developer Network (MSDN) 中对国家语言支持 (NLS) 的工作原理进行了非常详尽的解释。要点如下:
...目的...为尚未在 Windows 中获得本机支持的区域设置定义 NLS 服务(排序、时间/日期格式和键盘/IME),以避免冲突。-Microsoft 分配的区域设置 ID
基本上,这意味着开发人员可以使用区域设置 ID如果用户的 Windows 尚未包含该用户的语言和其他区域设置信息。这样,开发人员就可以为该用户提供自己的语言支持,而不管 Microsoft 是否已将 Windows 本地化为该区域设置。
看起来我好像在 MSDN 上错过了这个。无论如何,如果有人在 Google 上遇到这个问题,上面的内容应该可以解释它。
如果我错了,请评论或提供其他答案!
答案2
“区域设置”是指您所使用的国家/地区和语言。不同的国家/地区有不同的语言(显然),但即使是使用相同语言的国家/地区,日期、时间和货币的表示方式也不同。
1033 是美式英语。1041 是日语,等等。
有时您可能会看到它被写成 en_US(美国英语)或 en_AU(澳大利亚英语)。这是国际上公认的做法。数字是微软的专利。