Changements cassants de la globalisation dans .NET Core 3.0
Les modifications cassantes suivantes sont documentées sur cette page :
Modification avec rupture | Version introduite |
---|---|
Les paramètres régionaux « C » sont mappés aux paramètres régionaux invariants | 3.0 |
.NET Core 3.0
Les paramètres régionaux « C » sont mappés aux paramètres régionaux invariants
.NET Core 2.2 et les versions antérieures dépendent du comportement d’ICU par défaut, qui mappe les paramètres régionaux « C » aux paramètres régionaux en_US_POSIX. Les paramètres régionaux en_US_POSIX ont un comportement de classement indésirable, car ils ne prennent pas en charge les comparaisons de chaînes insensibles à la casse. Étant donné que certaines distributions Linux définissent les paramètres régionaux « C » comme paramètres régionaux par défaut, les utilisateurs rencontraient un comportement inattendu.
Description de la modification
À partir de .NET Core 3.0, le mappage de paramètres régionaux « C » a changé pour utiliser les paramètres régionaux invariants au lieu de en_US_POSIX. Le mappage des paramètres régionaux « C » à l’invariant est également appliqué à Windows pour la cohérence.
Le mappage de « C » à la culture en_US_POSIX a provoqué la confusion parmi les clients, car en_US_POSIX ne prend pas en charge les opérations de tri/recherche de chaînes insensibles à la casse. Étant donné que les paramètres régionaux « C » sont utilisés comme paramètres régionaux par défaut dans certaines distributions Linux, les clients rencontraient ce comportement non souhaité sur ces systèmes d’exploitation.
Version introduite
3.0
Action recommandée
Rien de particulier à part la conscience de ce changement. Ce changement affecte uniquement les applications qui utilisent le mappage de paramètres régionaux « C ».
Category
Globalisation
API affectées
Toutes les API de classement et de culture sont affectées par cette modification.