.NET中的系统区域设置

时间:2013-08-08 13:19:04

标签: c# locale culture

我已经通过

将系统区域设置设置为中文(简体中文)
ControlPanel >> Region and Language >> Administrative >> Change System locale

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

正在运行

Thread.CurrentThread.CurrentCulture.Name

返回

en-GB

为什么?

2 个答案:

答案 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应用程序进行交互,因此我需要查询当前的系统区域设置。