Zmieniono kategorię Unicode dla niektórych znaków łacińskich-1
Char metody zwracają teraz prawidłową kategorię Unicode dla znaków w zakresie Latyno-1. Kategoria jest zgodna ze standardem Unicode.
Opis zmiany
W poprzednich wersjach Char platformy .NET metody używały stałej listy kategorii Unicode dla znaków w zakresie latyno-1. Jednak standard Unicode zmienił kategorie niektórych z tych znaków, ponieważ te interfejsy API zostały zaimplementowane, tworząc rozbieżność. Ponadto wystąpiła rozbieżność między interfejsami Char API i CharUnicodeInfo , które są zgodne ze standardem Unicode. W wersjach .NET 5 i nowszych Char metody używają i zwracają kategorię Unicode zgodną ze standardem Unicode dla wszystkich znaków.
W poniższej tabeli przedstawiono znaki, których kategorie Unicode zostały zmienione na platformie .NET 5:
Znak | Kategoria Unicode w poprzednich wersjach platformy .NET |
Kategoria Unicode w programie .NET 5 i nowszych wersjach |
---|---|---|
§ (\u00a7) | OtherSymbol |
OtherPunctuation |
a (\u00aa) | LowercaseLetter |
OtherLetter |
SHY (\u00ad) | DashPunctuation |
Format |
} (\u00b6) | OtherSymbol |
OtherPunctuation |
a (\u00ba) | LowercaseLetter |
OtherLetter |
Wprowadzona wersja
.NET 5.0
Zalecana akcja
Jeśli masz jakikolwiek kod, który pobiera kategorię znaków Unicode przy użyciu Char klasy i zakłada, że kategoria nigdy się nie zmieni, może być konieczne jej zaktualizowanie.
Przyczyna wprowadzenia zmiany
Ta zmiana została wprowadzona tak, aby kategorie zwracane przez typ były zgodne zarówno ze standardem Char Unicode, jak i typem CharUnicodeInfo .
Dotyczy interfejsów API
- System.Char.GetUnicodeCategory
- System.Char.IsLetter
- System.Char.IsPunctuation
- System.Char.IsSymbol
- System.Char.IsLower
Ponadto każda klasa, która zależy od Char uzyskania kategorii znaków Unicode, na przykład , Regexma wpływ na tę zmianę.