Globalisering av icke-bakåtkompatibla ändringar i .NET Core 3.0
Följande icke-bakåtkompatibla ändringar dokumenteras på den här sidan:
Icke-bakåtkompatibel ändring | Version introducerad |
---|---|
"C" nationella inställningar mappar till det invarianta språket | 3,0 |
.NET Core 3.0
"C" nationella inställningar mappar till det invarianta språket
.NET Core 2.2 och tidigare versioner beror på standardbeteendet för ICU, som mappar språkvarianten "C" till en_US_POSIX nationella inställningar. Det en_US_POSIX nationella språket har ett oönskat sorteringsbeteende eftersom det inte stöder skiftlägesokänsliga strängjämförelser. Eftersom vissa Linux-distributioner anger "C"-språk som standardspråk hade användarna oväntat beteende.
Ändra beskrivning
Från och med .NET Core 3.0 har "C"-språkmappningen ändrats för att använda invariantspråket i stället för en_US_POSIX. "C"-språkvarianten för Invariant-mappning tillämpas också på Windows för konsekvens.
Mappning av "C" till en_US_POSIX kultur orsakade kundförvirring, eftersom en_US_POSIX inte stöder skiftlägesokänsliga sorterings-/söksträngsåtgärder. Eftersom "C"-språkvarianten används som standardspråk i vissa Linux-distributioner upplevde kunderna detta oönskade beteende på dessa operativsystem.
Version introducerad
3,0
Rekommenderad åtgärd
Inget specifikt mer än medvetenheten om denna förändring. Den här ändringen påverkar endast program som använder "C"-språkmappningen.
Kategori
Globalisering
Berörda API:er
Alla sorterings- och kultur-API:er påverkas av den här ändringen.