Ścieżki identyfikatora URI z znakami innym niż ASCII są poprawnie analizowane w systemie Unix
Usterka została usunięta w klasie, System.Uri tak aby bezwzględne ścieżki identyfikatora URI zawierające znaki inne niż ASCII były teraz poprawnie analizowane na platformach Unix.
Opis zmiany
W poprzednich wersjach platformy .NET ścieżki bezwzględnych identyfikatorów URI, które zawierają znaki inne niż ASCII, są nieprawidłowo analizowane na platformach Unix, a segmenty ścieżki są duplikowane. (Ścieżki bezwzględne to te, które zaczynają się od "/". Problem z analizowaniem został rozwiązany dla platformy .NET 5. Jeśli przejdziesz z poprzedniej wersji platformy .NET do platformy .NET 5 lub nowszej, uzyskasz różne wartości wygenerowane przez Uri.AbsoluteUri, Uri.ToString()i innych Uri członków.
Podczas uruchamiania w systemie Unix należy wziąć pod uwagę dane wyjściowe następującego kodu.
var myUri = new Uri("/üri");
Console.WriteLine($"AbsoluteUri: {myUri.AbsoluteUri}");
Console.WriteLine($"ToString: {myUri.ToString()}");
Dane wyjściowe z poprzedniej wersji platformy .NET:
AbsoluteUri: /%C3%BCri/%C3%BCri
ToString: /üri/üri
Dane wyjściowe na platformie .NET 5 lub nowszej wersji:
AbsoluteUri: /%C3%BCri
ToString: /üri
Wprowadzona wersja
5,0
Zalecana akcja
Jeśli masz kod, który oczekuje segmentów ścieżki zduplikowanych i kont, możesz usunąć ten kod.