次の方法で共有


一部の Latin-1 文字に対して変更された Unicode カテゴリ

Char メソッドで、Latin-1 範囲の文字に対して正しい Unicode カテゴリが返されるようになりました。 そのカテゴリは、Unicode 標準のカテゴリと一致します。

変更内容

以前のバージョンの .NET の Char メソッドでは、Latin-1 範囲の文字に対して Unicode カテゴリの固定リストが使用されていました。 ただし、それらの API が実装された後に、Unicode 標準でこれらの文字の一部のカテゴリが変更されたため、不一致が発生していました。 また、Char と、Unicode 標準に準拠する 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

また、Unicode 文字カテゴリを取得するために Char に依存するクラス (Regex など) も、この変更による影響を受けます。