I percorsi URI con caratteri non ASCII vengono analizzati correttamente in Unix

È stato risolto un bug nella classe System.Uri in modo che i percorsi URI assoluti che contengono caratteri non ASCII ora vengano analizzati correttamente nelle piattaforme Unix.

Descrizione delle modifiche

Nelle versioni precedenti di .NET, i percorsi URI assoluti che contengono caratteri non ASCII vengono analizzati in modo non corretto nelle piattaforme Unix e i segmenti del percorso vengono duplicati. (I percorsi assoluti sono quelli che iniziano con "/".) Il problema di analisi è stato risolto per .NET 5. Se passi da una versione precedente di .NET a .NET 5 o versione successiva, otterrai valori diversi prodotti da Uri.AbsoluteUri, Uri.ToString() e altri membri Uri.

Considera l'output del codice seguente quando viene eseguito in Unix.

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

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

Output nella versione .NET precedente:

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

Output in .NET 5 o versione successiva:

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

Versione introdotta

5.0

Se disponi di codice che prevede e tiene conto dei segmenti di percorso duplicati, puoi rimuovere tale codice.

API interessate