Dela via


TextInfo.ListSeparator-värden har ändrats

Standardvärdena TextInfo.ListSeparator för olika kulturer har ändrats på alla operativsystem.

Ändra beskrivning

I .NET 5.0.0, som en del av övergången från NLS till ICU-bibliotek, ändrades standardvärdena TextInfo.ListSeparator för olika kulturer i Windows. Decimalavgränsningsvärden, som hämtats från Internationella komponenter för Unicode (ICU), användes som ListSeparator värden. I Linux och macOS skedde ingen ändring i TextInfo.ListSeparator värden, det vill säga att de fortsatte att använda decimalavgränsningsvärden.

För alla operativsystem i .NET 5.0.1 och senare versioner motsvarar värdena för TextInfo.ListSeparator de värden som skulle hämtas från NLS. För Windows innebär det att värdena motsvarar vad de var i .NET Framework och .NET Core 1.0 –3.1. För Linux och macOS TextInfo.ListSeparator matchar TextInfo.ListSeparator värdena nu värdena för Windows.

I följande tabell sammanfattas ändringarna för TextInfo.ListSeparator värden.

.NET Framework
.NET Core 1.0 – 3.1
.NET 5 .NET 5.0.1
Windows Hämta från NLS Decimalavgränsare från ICU.
Kan växla tillbaka till NLS.
Motsvarar NLS
Linux och macOS Decimalavgränsare från ICU Decimalavgränsare från ICU Motsvarar NLS

Version introducerad

5.0.1

Orsak till ändringen

Utvecklare rapporterade att de använder TextInfo.ListSeparator egenskapen när de parsar kommaavgränsade värdefiler (CSV) och de nya TextInfo.ListSeparator värdena bröt den parsningen.

Om koden förlitar sig på föregående decimalavgränsningsvärden kan du hårdkoda önskade TextInfo.ListSeparator värden.

Berörda API:er