某些 Latin-1 字符的 Unicode 类别已更改
现在,Char 方法为 Latin-1 范围内的字符返回正确的 Unicode 类别。 类别与 Unicode 标准的类别匹配。
更改说明
在以前的 .NET 版本中,Char 方法对 Latin-1 范围内的字符使用 Unicode 类别的固定列表。 但是,自从实现这些 API 以来,Unicode 标准已更改其中某些字符的类别,从而造成了不一致。 此外,遵循 Unicode 标准的 Char 和 CharUnicodeInfo API 之间也存在不一致。 在 .NET 5 及更高版本中,Char 方法使用并返回与所有字符的 Unicode 标准匹配的 Unicode 类别。
下表显示了 .NET 5 中 Unicode 类别已更改的字符:
字符 | Unicode 类别 在以前的 .NET 版本中 |
Unicode 类别 在 .NET 5 及更高版本中 |
---|---|---|
§ (\u00a7) | OtherSymbol |
OtherPunctuation |
ª (\u00aa) | LowercaseLetter |
OtherLetter |
SHY (\u00ad) | DashPunctuation |
Format |
¶ (\u00b6) | OtherSymbol |
OtherPunctuation |
º (\u00ba) | LowercaseLetter |
OtherLetter |
引入的版本
.NET 5.0
建议操作
如果你有任何使用 Char 类获取 Unicode 字符类别的代码,并且假定该类别永远不会改变,则可能需要对其进行更新。
更改原因
进行此更改是为了使 Char 类型返回的类别与 Unicode 标准和 CharUnicodeInfo 类型保持一致。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈