asp.net 在Ubuntu上从.Net Core 2.2升级到3.1更改了区域性检测

8yoxcaq7  于 2022-12-27  发布在  .NET
关注(0)|答案(1)|浏览(139)

我有一个ASP.NET核心应用程序,我刚刚从2. 2升级到3. 1,作为努力获得最新版本的一部分。
一切都运行正常,除了我的数字现在的格式不同。
我现在看到的不是在货币前面显示“$”,而是“ä”(还有许多其他的变化,如字符串比较等)。
我的文化似乎已从English (United States, Computer)更改为``。
默认的文化是从哪里来的?我已经搜索了很多,有很多关于如何在代码中设置文化的主题,等等。这不是我要找的。
我想知道当你没有明确设置一个文化时.Net是如何确定它的,因为它是应用程序以前运行的方式。更重要的是,需要做什么调整才能将文化恢复到它以前的工作方式,而不必在代码中明确设置它。
以下是locale的值

$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

如果我运行一个简单的.Net程序打印出文化等。

static void Main(string[] args) {
    Console.WriteLine($"CurrentCulture   = {CultureInfo.CurrentCulture.Name}");
    Console.WriteLine($"CurrentUICulture = {CultureInfo.CurrentUICulture.Name}");
    Console.WriteLine($"{RegionInfo.CurrentRegion}");
}

......这就是我得到的

CurrentCulture   =
CurrentUICulture =
IV
u5rb5r59

u5rb5r591#

系统上似乎没有设置区域设置。您可以查看博客并设置区域设置。
Configure Locales in Ubuntu

相关问题

asp.net core linux - CultureInfo get country code

相关问题