Ś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

Jeśli masz kod, który oczekuje segmentów ścieżki zduplikowanych i kont, możesz usunąć ten kod.

Dotyczy interfejsów API