问题标签 [regioninfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 从 RegionInfo.TwoLetterISORegionName 获取 CultureInfo
在 db 中,我已经使用 RegionInfo.TwoLetterISORegionName 值存储了值。Atm 我有比利时的“be”、“no”、“gb”、“en”等值。
如果我写:
而不是比利时,我得到白俄罗斯。
所以我需要一种从 RegionInfo.TwoLetterISORegionName 获取 CultureInfo 的方法。
c# - 如何查找被引用的不同 .net 版本?
我试图找到ThreeLetterISORegionName
国家“塞浦路斯”和“维尔京群岛”。因此,我RegionInfo
使用System.Globalization
了来自 mscorlib
程序集的类。
上面的代码在我的本地机器上运行良好。但是在部署到生产环境后,我收到System.ArgumentException
了消息
区域名称 CY 不应对应中立文化;需要特定的文化名称
在我的本地机器和服务器中,我使用的是.net 4.5.2
版本。
mscorlibv
汇编版本是 4.0.30319
任何帮助深表感谢。:)
c# - 为什么ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ 是美国的原名?
当我使用此代码时:
那么为什么是nativeName
字符串"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᏍᎦᏚᎩ"
(在Cherokee中)?
如果我更改为new RegionInfo("US")
(only difference, capital US
),我会得到"United States"
.
我知道的首选用法RegionInfo
是提供特定的文化信息字符串,例如:
等等,这行得通。但是,为什么只有在我使用小写字母的情况下,切诺基语才比英语更受欢迎us
?
(见于 Windows 10(版本 1803“2018 年 4 月更新”)、.NET Framework 4.7.2。)
更新:即使在同一台机器上,这也不一致。例如,我多次尝试打开 PowerShell,每次都粘贴[System.Globalization.RegionInfo]'US'
到其中。似乎很长一段时间以来,PowerShell 的所有实例都始终给出相同的结果。但过了一会儿,PowerShell 的实例又给出了相反的结果。这是两个窗口的屏幕截图,一个始终具有一个NativeName
,另一个始终具有相反的一个。所以必须有一些不确定的决定(大小写没有区别):
elasticsearch - ElasticSearch 中的 RegionInfo 序列化
似乎该RegionInfo
对象在序列化方面已经被遗忘了。CultureInfo
效果很好,并且在字符串之间进行了序列化。当试图抛出一个RegionInfo
对象时,我得到了所有RegionInfo
无法反序列化的属性的混乱,因为没有构造函数可以反转所有这些属性。我很想将RegionInfo
s 序列化和反序列化为字符串,例如CultureInfo
,但不能完全弄清楚。
我的尝试:
我创建了一个 regioninfo 转换器
我把它塞进ConnectionSettings:
但我得到了错误:object mapping for [region] tried to parse field [region] as object, but found a concrete value
这听起来像是我的序列化程序之一是错误的,但我觉得我不太了解它是哪一部分。谢谢。
c# - 使用 CultureAndRegionInfoBuilder 将新的文化注册到旧的 Windows 版本
tl;dr:是否可以在 Windows Server 2012 R2 上将 en-BS 定义和注册为一种文化?
我正在尝试将国际货币选项引入我正在开发的一些软件中。这个过程本身并不困难。我使用诸如“en-US”之类的文化代码来获取CultureInfo对象,并使用 CultureInfo 对象中的 NumberFormat 来格式化货币。伟大的!我们在巴哈马有一些客户,所以我们希望支持的货币之一是巴哈马元,它来自文化 en-BS。
这在整个开发过程中都非常有效。但是在我们部署该功能后,尝试检索 en-BS 的 CultureInfo 时返回以下错误。
不支持文化。
参数名称:名称
en-BS 是无效的文化标识符。
在研究这个错误时,我了解到文化不是由 .NET 定义的,而是由操作系统定义的。Windows 10 原生支持 en-BS。我的开发环境的好消息!Windows Server 2012 R2 不支持 en-BS。对我们的生产环境来说是个坏消息。
所以现在看起来我需要利用CultureAndRegionInfoBuilder。这不是最方便的解决方案,但我可以让它工作。我对巴哈马元的文化细微差别一无所知,所以我想做的就是获取在 Windows 10 上定义的信息并将其注册到我们的 2012 R2 服务器上。由于我不能只通过旧服务器上的代码提取 en-BS CultureInfo,我认为下一个最好的办法是将 CultureInfo 序列化为我的开发机器上的一个文件,然后反序列化旧服务器上的那个文件到那时与 CultureAndRegionInfoBuilder 一起使用。
这不是我写过的最优雅的代码,但它很简单,对于我要运行一次然后永久存档的东西来说应该足够好。不幸的是,当我尝试从文件中反序列化 CultureInfo 对象时,它再次以完全相同的“en-BS 是无效的文化标识符”错误击中我,就好像它正在积极拒绝该名称的任何文化一样。
我不知所措。是否可以将 en-BS 或任何其他不受支持的文化注册到 2012 R2 服务器?
c# - 我的本地机器上与 Azure 上的捷克语不同的英文名称
我正在尝试RegionInfo
通过国家名称获取对象。我想出了这段代码:
它在我的机器上运行良好。但是当我将它部署在 Azure App Service 上时,它会返回null
捷克。
所以我测试了它:
事实证明,捷克共和国在 2016 年更名,为什么 Azure 显示“旧”名称?如何使这个解决方案与文化无关?
c# - 使用 RegionInfo 将国家名称转换为自己的 ThreeLetterISORegionName (c# 2013 Winforms)
我已经在 ComboBox 中写入了每个国家/地区的名称,但是现在我想在单击 ComboBox 中的国家/地区名称并将其显示在标签中时获取每个国家/地区的 ThreeLetterISORegionName,这可能吗?谢谢
c# - 不支持文化 (WPF)
在 WPF 应用程序(.NET Framework 4.5.2)中,我使用 IValueConverter 从 2 个字母的区域代码中获取 RegionInfo:
这几乎在任何地方都很有效。现在一位客户遇到了异常:
TypeString:System.ArgumentException,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 消息:不支持文化名称“MU”。参数名称:名称
当我使用 value="MU" 在本地调用 Convert-Method 时,我得到 'Mauritius' 作为相应的 DisplayName(来自 RegionInfo)。所以“MU”似乎是一个有效的区域代码。
那么为什么这个代码在客户端机器上是未知的呢?我该如何解决这个问题?
c# - 如何从 3 位 ISO 国家代码中获取 3 位/字母货币代码
我有一个带有代表国家代码的值的 ddl。例如。BRA、THA、UKR、AUS 等。我需要从每个本地化设置中获取首选货币。
我试过检查 RegionInfo 类,很可能答案就在那里。这个链接显示了我想要的https://www.iban.com/currency-codes
有没有办法在不使用表结构的情况下获得 3 位数的 currencyCode?即来自个人电脑或浏览器本身。基本上,如果用户选择他们的国家为美国,那么货币应该固定为美元。我可以用一些 sql 很容易地做到这一点。但我想在不打分贝的情况下做到这一点。即通过RegionInfo 或CultureInfo。
我不能使用 new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID).ISOCurrencySymbol 因为它从服务器中提取。
c# - .net 是否有在创建 RegionInfo 对象之前验证区域名称的内置方法?
我的代码如下所示:
是否有验证区域名称的内置方法,因此我不必使用 try/catch?