La catégorie Unicode a été modifiée pour les caractères Latin-1
Les méthodes Charretournent maintenant la catégorie Unicode correcte pour les caractères de la plage Latin-1. La catégorie correspond à celle de la norme Unicode.
Description de la modification
Dans les versions .NET précédentes, les méthodes Char utilisaient une liste fixe de catégories Unicode pour les caractères de la plage Latin-1. Toutefois, la norme Unicode a modifié les catégories de certains de ces caractères depuis que ces API ont été implémentées, créant une différence. En outre, il y avait également une différence entre les API Char et CharUnicodeInfo, qui suivent la norme Unicode. Dans .NET 5 et versions ultérieures, les méthodes Char utilisent et retournent la catégorie Unicode qui correspond à la norme Unicode pour tous les caractères.
Le tableau suivant montre les caractères dont les catégories Unicode ont changé dans .NET 5 :
Caractère | catégorie Unicode dans les versions .NET précédentes |
catégorie Unicode dans les versions .NET 5 et ultérieures |
---|---|---|
§ (\u00a7) | OtherSymbol |
OtherPunctuation |
ª (\u00aa) | LowercaseLetter |
OtherLetter |
SHY (\u00ad) | DashPunctuation |
Format |
¶ (\u00b6) | OtherSymbol |
OtherPunctuation |
º (\u00ba) | LowercaseLetter |
OtherLetter |
Version introduite
.NET 5.0
Action recommandée
Si vous avez un code qui obtient la catégorie de caractères Unicode à l’aide de la classe Char et suppose que la catégorie ne changera jamais, vous devrez peut-être la mettre à jour.
Raison du changement
Ce changement a été apporté afin que les catégories retournées par le type Char soient cohérentes avec la norme Unicode et le typeCharUnicodeInfo.
API affectées
- System.Char.GetUnicodeCategory
- System.Char.IsLetter
- System.Char.IsPunctuation
- System.Char.IsSymbol
- System.Char.IsLower
En outre, toute classe qui dépend de Char pour obtenir la catégorie de caractères Unicode, par exemple , Regex, est affectée par ce changement.