某些拉丁语字符的 Unicode 类别已更改

Char 方法现在为 Latin-1 字符向量中的字符返回正确的 Unicode 分类。 类别与 Unicode 标准的类别匹配。

更改描述

在以前的 .NET 版本中, Char 方法对 Latin-1 范围内的字符使用了 Unicode 类别的固定列表。 但是,Unicode 标准自实施这些 API 以来更改了其中一些字符的类别,从而造成了差异。 此外,遵循 Unicode 标准的 CharCharUnicodeInfo API 之间也存在差异。 在 .NET 5 及更高版本中, Char 方法使用并返回与所有字符的 Unicode 标准匹配的 Unicode 类别。

下表显示了 Unicode 类别在 .NET 5 中已更改的字符:

字符 Unicode 类别
在以前的 .NET 版本中
Unicode 类别
在 .NET 5 及更高版本中
§ (\u00a7) OtherSymbol OtherPunctuation
ª (\u00aa) LowercaseLetter OtherLetter
害羞(\u00ad) DashPunctuation Format
\u00b6) OtherSymbol OtherPunctuation
ー (\u00ba) LowercaseLetter OtherLetter

已引入的版本

.NET 5.0

如果你有任何通过使用 Char 类来获取 Unicode 字符类别的代码,并且假设该类别永远不会更改,那么你可能需要更新它。

更改原因

进行了此更改,使类型返回的 Char 类别与 Unicode 标准和 CharUnicodeInfo 类型保持一致。

受影响的 API

此外,依赖于获取 Unicode 字符类别的任何类 Char (例如) Regex都会受到此更改的影响。