Partager via


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

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.