経由でシステム ロケールを中国語 (簡体字) に設定しました。
ControlPanel >> Region and Language >> Administrative >> Change System locale
その後、コンピューターを再起動し、.NET 4.0 アプリケーションを実行しました。
ランニング
Thread.CurrentThread.CurrentCulture.Name
戻り値
en-GB
なんで?
MSDNはそれを言う
デフォルトのカルチャやフォーマット パターンなどの情報は、最初に要求されたときにキャッシュされます。この情報は、たとえば、ユーザーがコントロール パネルの地域と言語のオプション部分を変更した場合など、AppDomain の存続期間中に変更される可能性があります。ただし、CultureInfo クラスは、システム設定の変更を自動的に検出しません。
最初にこれを呼び出します
Thread.CurrentThread.CurrentCulture.ClearCachedData();
システム ロケールが表示される場所は System.Text.Encoding.Default のようです
PS: 「...Change system locale」は、「非 Unicode」アプリケーション (Win32 API からの *A() 呼び出し) に使用される ANSI コードページに影響します。ほとんどの場合、.NET アプリケーションは Unicode 文字列と Unicode API を使用するため、これを気にする必要はありません。しかし、Unicode に対応していないアプリケーションとやり取りする必要があるため、現在のシステム ロケールを調べる必要があります。