标签: regioninfo

为什么ᏌᏊᎢᏳᎾᎵᏍᏔᏅᏍᎦᏚᎩ是美国的本土名称?

当我使用这段代码时:

var ri = new RegionInfo("us");
var nativeName = ri.NativeName;   // ?? ??????? ????
Run Code Online (Sandbox Code Playgroud)

nativeName那么为什么是弦乐"?? ??????? ????"(在切罗基)?

如果我改为new RegionInfo("US")(只有差异,资本US),我会改为"United States".

知道的首选使用的RegionInfo是给特定的文化信息字符串,例如:

new RegionInfo("en-US")
new RegionInfo("chr-Cher-US")
Run Code Online (Sandbox Code Playgroud)

等等,这是有效的.但是,只有当我使用小写时,为什么切诺基比英语更喜欢us


(见于Windows 10(版本1803"2018年4月更新"),.NET Framework 4.7.2.)


更新:即使在同一台机器上,这也不一致.例如,我尝试打开PowerShell很多次,每次粘贴[System.Globalization.RegionInfo]'US'它.好像很长一段时间,PowerShell的所有实例都始终给出相同的结果.但过了一会儿,PowerShell的实例会产生相反的结果.这是两个窗口的屏幕截图,一个窗口始终有一个窗口,另一个窗口NativeName始终具有相反的窗口.因此必须有一些非确定性的决定(套管无差异):

PowerShell窗口

.net c# globalization regioninfo casing

20
推荐指数
1
解决办法
398
查看次数

最佳实践 - 格式化多种货币

下面列出的场景的最佳做法是什么?

我们有一个应用程序,我们想支持多种货币.该软件将尊重用户的区域设置和区域设置,以指示正确的数字格式,即$ 10,000.00或10.000,00₴等.

但是,我们希望能够根据货币ID(可能是三个字母的ISO4217代码)格式化不同的数字.我们的想法是使用每种货币在数据库中存储一个表,然后请求用户选择将使用的货币符号.然后,程序将根据区域设置/区域设置格式化所有数字,但将使用我们程序中定义的货币符号.

因此,给出以下数值和货币
10000 AUD
5989.34 USD
450 EUR

该计划将输出
$ 10,000.00
$ 5,989.34
€450.00

或者使用区域设置将数字格式化为#####,## $结果将是;
10000,00 $
5989,34 $
450,00€

尊重区域设置/区域编号格式但显示不同的货币,最佳做法是什么?

我希望这是有道理的.

使用的技术是c#.NET 2.0.

c# currency regioninfo cultureinfo internationalization

17
推荐指数
2
解决办法
1万
查看次数

按国家/地区名称获取RegionInfo?

我希望能够RegionInfo做到以下几点:

new RegionInfo("United Kingdom");
Run Code Online (Sandbox Code Playgroud)

但这引发了一个例外,并表示它无法识别.

RegionInfo上的页面表示如果"name不是有效的国家/地区名称",则会引发异常.

然而,此页面指定了包含的类所使用的预定义区域列表United Kingdom,那么为什么不创建RegionInfo具有国家/地区名称的新工作呢?

c# regioninfo regions

12
推荐指数
1
解决办法
1万
查看次数

.NET RegionInfo类

当我尝试创建一个具有某些ISO 3166国家代码的新RegionInfo(孟加拉国的"BD",索马里的"SO",斯里兰卡的"LK"),我得到一个ArgumentException,表示它无法识别.

这是怎么回事?RegionInfo的Intellisense(字符串)表示它符合ISO 3166,但不支持这些国家/地区代码?

我不明白.

.net c# globalization regioninfo

8
推荐指数
1
解决办法
5596
查看次数

在C#中获得一个国家的大陆

有没有办法在C#中找到一个国家的大陆,使用RegionInfo该类或任何其他方式?

例如,您将国家名称命名为"Denmark",并返回"Europe".

.net c# country regioninfo

6
推荐指数
2
解决办法
4746
查看次数

国家/地区名称为ISO 3166-2代码

我知道如何通过使用将ISO 3166-2代码转换为完整的英文名称,例如"US"到"United States" RegionInfo.

但是,我怎么能做相反的事情,即拿"美国"并返回"美国"?

c# globalization regioninfo cultureinfo iso-3166

6
推荐指数
1
解决办法
5145
查看次数

如何仅在.NET中从语言中获取DayNames

假设我只有国家代码(en,de,fr),我需要以这种语言显示工作日.我知道RegionInfo和CultureInfo - 但我找不到解决方案.如果我从(例如)"en"创建国家/地区信息,则其中没有DateTime信息.只取第一个匹配区域也可以.例如en-US for en或de-de for de.

我不知道DayNames是否存在差异,但我知道这几个月有一些差异.de-DE Februar - de-AT Feber - 无论如何我不在乎.事件,如果它可能"有点不同"(看到Februar而不是Feber) - 它仍然是德国人.

这就是我想要实现的目标 - 在星期一写一封 - 得到de并写Montag ......

有没有办法只从语言代码创建一个区域?

c# regioninfo cultureinfo

5
推荐指数
1
解决办法
1955
查看次数

使用 C# 获取当前国家和位置详细信息

我想知道我的应用程序在哪里使用。

这是获取国家/地区名称和时区的代码:

TimeZone localZone = TimeZone.CurrentTimeZone;
var result = localZone.StandardName;
var s = result.Split(' ');
Console.WriteLine(s[0]);
Console.WriteLine(RegionInfo.CurrentRegion.DisplayName);
Run Code Online (Sandbox Code Playgroud)

但我的问题是,任何人都可以更改时区。根据时区,我可能会得到错误的名字。并且区域设置为美国,无法更改。因为所有用户都有相同的设置,并且我的应用程序有数十万用户。

有什么方法可以读取任何操作系统设置/系统设置并获取使用我的应用程序的当前国家/地区?

c# regioninfo cultureinfo

2
推荐指数
1
解决办法
9320
查看次数