当我使用此代码时:
var ri = new RegionInfo("us");
var nativeName = ri.NativeName; // ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ
那么为什么是nativeName
字符串"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ"
(在Cherokee中)?
如果我更改为new RegionInfo("US")
(only difference, capital US
),我会得到"United States"
.
我知道的首选用法RegionInfo
是提供特定的文化信息字符串,例如:
new RegionInfo("en-US")
new RegionInfo("chr-Cher-US")
等等,这行得通。但是,为什么只有在我使用小写字母的情况下,切诺基语才比英语更受欢迎us
?
(见于 Windows 10(版本 1803“2018 年 4 月更新”)、.NET Framework 4.7.2。)
更新:即使在同一台机器上,这也不一致。例如,我多次尝试打开 PowerShell,每次都粘贴[System.Globalization.RegionInfo]'US'
到其中。似乎很长一段时间以来,PowerShell 的所有实例都始终给出相同的结果。但过了一会儿,PowerShell 的实例又给出了相反的结果。这是两个窗口的屏幕截图,一个始终具有一个NativeName
,另一个始终具有相反的一个。所以必须有一些不确定的决定(大小写没有区别):