我已经通过
将系统区域设置设置为中文(简体中文)ControlPanel >> Region and Language >> Administrative >> Change System locale
然后我重新启动了我的计算机并运行我的.NET 4.0应用程序。
正在运行
Thread.CurrentThread.CurrentCulture.Name
返回
en-GB
为什么?
答案 0 :(得分:2)
MSDN说
信息,例如默认文化和格式模式,是 在第一次请求时缓存。这些信息可能会改变 在AppDomain的生命周期中,例如,当用户修改时 控制面板的区域和语言选项部分。然而, CultureInfo类不会自动检测到的变化 系统设置。
先打电话
Thread.CurrentThread.CurrentCulture.ClearCachedData();
答案 1 :(得分:0)
看起来系统区域设置的位置是System.Text.Encoding.Default
PS:“...更改系统区域设置”会影响用于“非Unicode”应用程序的ANSI代码页(来自Win32 API的* A()调用)。在大多数情况下,.NET应用程序不需要关心它,因为它们使用Unicode字符串和Unicode API。但我必须与非unicode应用程序进行交互,因此我需要查询当前的系统区域设置。