与 CultureInfo 对象关联的名称

CultureInfo 和相关类(如 CompareInfo)关联的区域性名称有多种变体。 根据用于 CultureInfo 的构造函数,这些区域性名称具有不同的处理方式。 该类定义两个构造函数,应用程序将为这两个构造函数传递一个区域性名称,此外还会定义两个用于处理区域性(由标识符表示)的构造函数。

使用区域性名称构造区域性信息时的名称处理方式

传递区域性名称以创建 CultureInfo 对象时,应用程序可以使用带有接受表示名称的字符串的构造函数之一。 让我们考虑一个传递以下字符串的示例:

  • “EN-US”代表“美国英语”

  • “de-DE_phoneb”代表使用电话簿排序方式(一种替换排序方式)的德语(德国)

  • “fj-FJ”代表自定义区域性,该区域性使用“en-US”排序顺序进行字符串比较。

下表显示了由基于字符串的 CultureInfo 构造函数之一和相关编程元素处理的区域性名称。

元素

en-US

de-DE_phoneb

自定义区域性

CultureInfo 构造函数

en-US

de-DE_phoneb

fj-FJ

CultureInfo.ToString

en-US

de-DE_phoneb

fj-FJ

CultureInfo.Name

en-US

de-DE

fj-FJ

TextInfo.CultureName

en-US

de-DE

fj-FJ

CompareInfo.Name

en-US

de-DE_phoneb

en-US

CultureInfo.ToString 始终返回传递给构造函数的确切值,只是对大小写进行了“正常化”。 例如,如果应用程序将“En-Us”传递给构造函数,ToString 将返回“en-US”。 CultureInfo.Name 始终给出名称的“缩写”形式,其中排除了任何替换排序的指示,例如,给出“de-DE”,而不是“de-DE_phoneb”。

TextInfo.CultureName 与 CultureInfo.Name 始终相同。 最后,CompareInfo.Name 给出排序的名称,即使它与区域性本身的名称完全无关。

使用区域性标识符构造区域性信息时的名称处理方式

应用程序还可以传递区域性标识符来创建 CultureInfo 对象。 此种情况下,应用程序可以使用接受标识符值的构造函数之一。 让我们考虑一个向构造函数传递以下区域性标识符的示例:

  • 0x0409 代表美国英语

  • 0x10407 代表使用电话簿排序方式的德语(德国)

  • 0x0c00 代表自定义区域性“fj-FJ”,它必须是当前默认用户区域性;假定此自定义区域性使用“en-US”排序顺序进行字符串比较

下表显示了由基于标识符的 CultureInfo 构造函数之一和相关编程元素处理的区域性命名机制。 请注意,这些名称与上例中的名称完全相同。

元素

en-US

de-DE_phoneb

自定义区域性

CultureInfo 构造函数

0x0409

0x0407

0x0C00

CultureInfo.ToString

en-US

de-DE_phoneb

fj-FJ

CultureInfo.Name

en-US

de-DE

fj-FJ

TextInfo.CultureName

en-US

de-DE

fj-FJ

CompareInfo.Name

en-US

de-DE_phoneb

en-US

请参见

参考

CultureInfo

CompareInfo

概念

与 RegionInfo 对象关联的名称

其他资源

编码和本地化