2

我已通过以下方式将系统区域设置为中文(简体中国)

ControlPanel >> Region and Language >> Administrative >> Change System locale

然后我重新启动计算机并运行我的 .NET 4.0 应用程序。

跑步

Thread.CurrentThread.CurrentCulture.Name

退货

en-GB

为什么?

4

2 回答 2

2

MSDN

信息(例如默认文化和格式模式)在第一次被请求时被缓存。该信息可能会在 AppDomain 的生命周期内发生变化,例如,当用户修改控制面板的区域和语言选项部分时。但是,CultureInfo 类不会自动检测系统设置的变化。

先调用这个

 Thread.CurrentThread.CurrentCulture.ClearCachedData();
于 2013-08-08T13:22:29.963 回答
-1

看起来可以看到系统语言环境的地方是 System.Text.Encoding.Default

PS:“...更改系统区域设置”会影响用于“非 Unicode”应用程序的 ANSI 代码页(来自 Win32 API 的 *A() 调用)。在大多数情况下,.NET 应用程序不需要关心它,因为它们使用 Unicode 字符串和 Unicode API。但是我必须与非 unicode 应用程序交互,所以我需要查询当前系统语言环境。

于 2015-07-30T06:44:31.437 回答