Значения по умолчанию TextInfo.ListSeparator для разных языков и региональных параметров изменились во всех операционных системах.
Описание изменения
В .NET 5.0.0 в рамках переключения с NLS на библиотеки ICU значения TextInfo.ListSeparator по умолчанию для различных языков и региональных параметров в Windows изменились. В качестве значений ListSeparator были использованы значения десятичных разделителей, полученные из международных компонентов для Юникода (ICU). В Linux и macOS значения TextInfo.ListSeparator не изменились, то есть по-прежнему используются значения десятичного разделителя.
Для всех операционных систем в .NET 5.0.1 и более поздних версий значения для TextInfo.ListSeparator эквивалентны значениям, полученным из NLS. Для Windows это означает, что значения эквивалентны тем, что были в .NET Framework и .NET Core 1.0–3.1. Для Linux и macOS значения TextInfo.ListSeparator теперь соответствуют значениям TextInfo.ListSeparator для Windows.
Десятичный разделитель из ICU. Можно переключиться обратно на NLS.
Эквивалентно NLS
Linux и macOS
Десятичный разделитель из ICU
Десятичный разделитель из ICU
Эквивалентно NLS
Представленные версии
5.0.1
Причина изменения
Разработчики сообщили, что они используют свойство TextInfo.ListSeparator при анализе файлов с разделителями-запятыми (CSV), а новые значения TextInfo.ListSeparator нарушают этот синтаксический анализ.
Рекомендуемое действие
Если код зависит от предыдущих значений десятичного разделителя, можно жестко закодировать требуемые значения TextInfo.ListSeparator.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.