Ordnungsgemäße Analyse von URI-Pfaden mit Nicht-ASCII-Zeichen unter UNIX

Es wurde ein Fehler in der System.Uri-Klasse behoben, sodass absolute URI-Pfade, die Nicht-ASCII-Zeichen enthalten, jetzt auf UNIX-Plattformen korrekt analysiert werden.

Änderungsbeschreibung

In früheren .NET-Versionen werden absolute URI-Pfade, die Nicht-ASCII-Zeichen enthalten, auf UNIX-Plattformen falsch analysiert, und Segmente des Pfads werden dupliziert. (Absolute Pfade sind diejenigen Pfade, die mit „/“ beginnen.) Das Analyseproblem wurde für .NET 5 behoben. Wenn Sie von einer früheren Version von .NET zu .NET 5 oder höher wechseln, erhalten Sie unterschiedliche Werte, die von Uri.AbsoluteUri, Uri.ToString() oder anderen Uri-Membern erzeugt werden.

Beachten Sie bei der Ausführung unter UNIX die Ausgabe des folgenden Codes.

var myUri = new Uri("/üri");

Console.WriteLine($"AbsoluteUri: {myUri.AbsoluteUri}");
Console.WriteLine($"ToString: {myUri.ToString()}");

Ausgabe bei der vorherigen .NET-Version:

AbsoluteUri: /%C3%BCri/%C3%BCri
ToString: /üri/üri

Ausgabe bei .NET 5 oder einer höheren Version:

AbsoluteUri: /%C3%BCri
ToString: /üri

Eingeführt in Version

5.0

Wenn Sie Code verwenden, der die duplizierten Pfadsegmente erwartet und berücksichtigt, können Sie diesen Code entfernen.

Betroffene APIs