Zmiany powodujące niezgodność globalizacji na platformie .NET Core 3.0
Na tej stronie udokumentowane są następujące zmiany powodujące niezgodność:
Zmiana powodująca niezgodność | Wprowadzona wersja |
---|---|
Ustawienia regionalne "C" mapują na niezmienne ustawienia regionalne | 3.0 |
.NET Core 3.0
Ustawienia regionalne "C" mapują na niezmienne ustawienia regionalne
Platforma .NET Core 2.2 i starsze wersje zależą od domyślnego zachowania ICU, które mapuje ustawienia regionalne "C" na ustawienia regionalne en_US_POSIX. Ustawienia regionalne en_US_POSIX mają niepożądane zachowanie sortowania, ponieważ nie obsługuje porównań ciągów bez uwzględniania wielkości liter. Ponieważ niektóre dystrybucje systemu Linux ustawiają ustawienia regionalne "C" jako domyślne ustawienia regionalne, użytkownicy napotykali nieoczekiwane zachowanie.
Opis zmiany
Począwszy od platformy .NET Core 3.0, mapowanie ustawień regionalnych "C" zmieniło się tak, aby używało niezmiennych ustawień regionalnych zamiast en_US_POSIX. Ustawienia regionalne "C" do niezmiennego mapowania są również stosowane do systemu Windows w celu zapewnienia spójności.
Mapowanie "C" na kulturę en_US_POSIX spowodowało zamieszanie klientów, ponieważ en_US_POSIX nie obsługuje operacji sortowania/wyszukiwania bez uwzględniania wielkości liter. Ponieważ ustawienia regionalne "C" są używane jako domyślne ustawienia regionalne w niektórych dystrybucjach systemu Linux, klienci doświadczyli tego niepożądanego zachowania w tych systemach operacyjnych.
Wprowadzona wersja
3.0
Zalecana akcja
Nic bardziej szczegółowego niż świadomość tej zmiany. Ta zmiana dotyczy tylko aplikacji korzystających z mapowania ustawień regionalnych "C".
Kategoria
Globalizacja
Dotyczy interfejsów API
Ta zmiana ma wpływ na wszystkie interfejsy API sortowania i kultury.