Les chemins d’accès URI avec des caractères non-ASCII sont analysés correctement sur Unix
Un bogue a été résolu dans la classe System.Uri de sorte que les chemins d’URI absolus qui contiennent des caractères non ASCII s’analysent désormais correctement sur les plateformes Unix.
Description de la modification
Dans les versions précédentes de .NET, les chemins d’accès URI absolu qui contiennent des caractères non ASCII sont mal analysés sur les plateformes Unix et les segments du chemin d’accès sont dupliqués. (Les chemins absolus sont ceux qui commencent par « / ».) Le problème d’analyse a été résolu pour .NET 5. Si vous passez d’une version précédente de .NET à .NET 5 ou version ultérieure, vous obtiendrez des valeurs différentes produites par Uri.AbsoluteUri, Uri.ToString() et d’autres membres Uri.
Tenez compte de la sortie du code suivant lors de l’exécution sur Unix.
var myUri = new Uri("/üri");
Console.WriteLine($"AbsoluteUri: {myUri.AbsoluteUri}");
Console.WriteLine($"ToString: {myUri.ToString()}");
Sortie sur la version précédente de .NET :
AbsoluteUri: /%C3%BCri/%C3%BCri
ToString: /üri/üri
Sortie sur .NET 5 ou version ultérieure :
AbsoluteUri: /%C3%BCri
ToString: /üri
Version introduite
5,0
Action recommandée
Si vous avez du code qui attend et prend en compte les segments de chemin d’accès dupliqués, vous pouvez supprimer ce code.