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.
Rekommenderad åtgärd
Om koden förlitar sig på föregående decimalavgränsningsvärden kan du hårdkoda önskade TextInfo.ListSeparator värden.