Partager via


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

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.

API affectées