一部の 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
- System.Char.GetUnicodeCategory
- System.Char.IsLetter
- System.Char.IsPunctuation
- System.Char.IsSymbol
- System.Char.IsLower
また、Unicode 文字カテゴリを取得するために Char に依存するクラス (Regex など) も、この変更による影響を受けます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET