NormalizationForm 枚举

定义

定义要执行的规范化的类型。

C#
public enum NormalizationForm
C#
[System.Runtime.InteropServices.ComVisible(true)]
public enum NormalizationForm
继承
NormalizationForm
属性

字段

名称 说明
FormC 1

指示 Unicode 字符串使用完全标准分解进行规范化,然后将序列替换为其主复合(如果可能)。

FormD 2

指示 Unicode 字符串使用完全标准分解进行规范化。

FormKC 5

指示 Unicode 字符串使用完全兼容分解进行规范化,然后将序列替换为其主复合(如果可能)。

FormKD 6

指示 Unicode 字符串使用完全兼容分解进行规范化。

注解

某些 Unicode 序列被视为等效序列,因为它们表示相同的字符。 例如,以下内容被视为等效项,因为其中任何一个都可用于表示“ắ”:

  • “\u1EAF” (U+1EAF 拉丁文小写字母 A,带有短音和锐)

  • “\u0103\u0301” (U+0103 拉丁文小写字母 A 与 BREVE + U+0301 组合锐音符)

  • “\u0061\u0306\u0301” (U+0061 拉丁文小写字母 A + U+0306 组合 BREVE + U+0301 组合锐音符)

但是,序号(即二进制)比较认为这些序列不同,因为它们包含不同的 Unicode 代码值。 在执行序号比较之前,应用程序必须规范化这些字符串,以便将其分解为其基本组件。

每个复合 Unicode 字符映射到一个或多个字符的更基本序列。 分解过程将字符串中的复合字符替换为其更基本的映射。 完全分解以递归方式执行此替换,直到字符串中的字符无法进一步分解。

Unicode 定义了两种类型的分解:兼容性分解和规范分解。 在兼容性分解中,格式设置信息可能会丢失。 在规范分解(兼容性分解的子集)中,将保留格式信息。

如果两组字符的完整规范分解相同,则认为两组字符具有规范等效性。 同样,如果两组字符完全兼容分解相同,则两组字符被视为具有兼容性等效性。

有关规范化、分解和等效性的详细信息,请参阅 unicode.org 中的 Unicode 标准附件 #15:Unicode 规范化形式

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

另请参阅