Condividi tramite


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

È stato risolto un bug nella System.Uri classe in modo che i percorsi URI assoluti che contengono caratteri non ASCII ora analizzano 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 si passa da una versione precedente di .NET a .NET 5 o versione successiva, si otterranno valori diversi prodotti da Uri.AbsoluteUri, Uri.ToString()e altri Uri membri.

Si consideri 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 della versione precedente di .NET:

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 hai codice che prevede e gestisce i segmenti di percorso duplicati, puoi rimuovere tale codice.

Le API interessate