Share via


有些 Latin-1 字元的 Unicode 類別已變更

Char 方法現在會為 Latin-1 範圍內的字元,傳回正確的 Unicode 類別。 此類別符合 Unicode 標準的類別。

變更描述

在舊版的 .NET 中,Char 方法對於 Latin-1 範圍內的字元,使用固定的 Unicode 類別清單。 然而 Unicode 標準已變更某些字元的類別,但因為這些 API 已實作,所以產生了差異。 此外,Char 和遵循 Unicode 標準的 CharUnicodeInfo API 之間也有差異。 在 .NET 5 及更新版本中,Char 方法會使用 及傳回符合所有字元皆適用之 Unicode 標準的 Unicode 類別。

下表顯示 .NET 5 中 Unicode 類別已有變更的字元:

字元 Unicode 類別
在舊版 .NET 中
Unicode 類別
在 .NET 5.0 與更新版本中
§ (\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

此外,任何需要 Char 來取得 Unicode 字元類別的類別 (例如 Regex),都受此變更的影響。