Для некоторых символов латиницы-1 изменилась категория Юникода

Методы Char теперь возвращают правильную категорию Юникода для символов в диапазоне латиницы-1. Категория соответствует стандарту Юникода.

Описание изменения

В предыдущих версиях .NET методы Char использовали фиксированный список категорий Юникода для символов в диапазоне латиницы-1. Однако в стандарте Юникода категории некоторых из этих символов были изменены, так как эти API были реализованы, что создает расхождение. Кроме того, существует несоответствие между API Char и CharUnicodeInfo, которые следуют стандарту Юникода. В .NET 5 и более поздних версиях методы Char используют и возвращают категорию Юникода, которая соответствует стандарту Юникода для всех символов.

В следующей таблице показаны символы, чьи категории Юникода изменились в .NET 5:

Символ Категория Юникода
в предыдущих версиях .NET
Категория Юникода
в .NET 5 и более поздних версиях
§ (\u00a7) OtherSymbol OtherPunctuation
ª (\u00aa) LowercaseLetter OtherLetter
SHY (\u00ad) DashPunctuation Format
¶ (\u00b6) OtherSymbol OtherPunctuation
º (\u00ba) LowercaseLetter OtherLetter

Представленные версии

.NET 5.0

Если у вас есть код, который получает категорию символов Юникода с помощью класса Char и предполагает, что категория никогда не изменится, может потребоваться обновить его.

Причина изменения

Это изменение было сделано таким образом, чтобы категории, возвращаемые типом Char, соответствовали стандарту Unicode и типу CharUnicodeInfo.

Затронутые API

Кроме того, это изменение затрагивает любой класс, зависящий от Char для получения категории символов Юникода, например Regex.