Критические изменения в области глобализации — .NET Core 3.0

На этой странице описаны следующие критические изменения:

Критическое изменение Представленные версии
Языковой стандарт "C" сопоставляется с инвариантным языковым стандартом 3.0

.NET Core 3.0

Языковой стандарт "C" сопоставляется с инвариантным языковым стандартом

.NET Core 2.2 и более ранних версий зависит от поведения ICU по умолчанию, которое сопоставляет языковой стандарт "C" с языковым стандартом en_US_POSIX. Языковой стандарт en_US_POSIX имеет нежелательное поведение сортировки, так как не поддерживает сравнение строк без учета регистра. Так как некоторые дистрибутивы Linux устанавливают языковой стандарт "C" в качестве используемого по умолчанию, пользователи сталкивались с непредвиденным поведением.

Описание изменения

Начиная с .NET Core 3.0 сопоставление языкового стандарта "C" изменилось на использование инвариантного (Invariant) языкового стандарта вместо en_US_POSIX. Для обеспечения согласованности в Windows также применяется сопоставление языкового стандарта "C" с инвариантным.

Сопоставление "C" с языком и региональными параметрами en_US_POSIX вызывало путаницу у клиентов, так как en_US_POSIX не поддерживает операции сортировки и поиска строк без учета регистра. Так как в некоторых дистрибутивах Linux языковой стандарт "C" используется по умолчанию, клиенты столкнулись с нежелательным поведением в этих операционных системах.

Представленные версии

3.0

Ничего конкретного, кроме сведений об этом изменении. Это изменение затрагивает только приложения, использующее сопоставление языкового параметра "C".

Категория

Глобализация

Затронутые API

Это изменение затрагивает все API параметров сортировки и языка и региональных параметров.