Modifiche che causano un'interruzione della globalizzazione in .NET Core 3.0

Le seguenti modifiche che causano un’interruzione sono documentate in questa pagina:

Modifica Versione introdotta
Le impostazioni locali "C" sono mappate alle impostazioni locali invarianti 3,0

.NET Core 3.0

Le impostazioni locali "C" sono mappate alle impostazioni locali invarianti

.NET Core 2.2 e versioni precedenti dipendono dal comportamento di ICU predefinito, che esegue il mapping delle impostazioni locali "C" alle impostazioni locali en_US_POSIX. Le impostazioni locali en_US_POSIX hanno un comportamento indesiderato delle regole di confronto, perché non supporta confronti tra stringhe senza distinzione tra maiuscole e minuscole. Poiché alcune distribuzioni Linux impostano le impostazioni locali "C" come impostazioni locali predefinite, gli utenti riscontravano un comportamento imprevisto.

Descrizione delle modifiche

A partire da .NET Core 3.0, il mapping delle impostazioni locali "C" è stato modificato per usare le impostazioni locali invarianti anziché en_US_POSIX. Anche le impostazioni locali "C" al mapping invariante vengono applicate a Windows per la coerenza.

Il mapping di "C" alle impostazioni cultura en_US_POSIX causava confusione del cliente, perché en_US_POSIX non supporta operazioni di ordinamento/ricerca di stringhe senza distinzione tra maiuscole e minuscole. Poiché le impostazioni locali "C" vengono usate come impostazioni locali predefinite in alcune delle distribuzioni Linux, i clienti hanno riscontrato questo comportamento indesiderato in questi sistemi operativi.

Versione introdotta

3,0

Niente di più specifico della consapevolezza di questo cambiamento. Questa modifica influisce solo sulle applicazioni che usano il mapping delle impostazioni locali "C".

Category

Globalizzazione

API interessate

Tutte le API delle regole di confronto e delle impostazioni cultura sono interessate da questa modifica.