Documentation développeur
C#
Mis à jour le 19 septembre 2026

Encodage et décodage d’URL en C#

Encodez correctement les composants d’URL et distinguez chemin, requête et formulaires en C#.

L’encodage d’URL dépend du contexte. Un segment de chemin, une valeur de requête et des données application/x-www-form-urlencoded ne suivent pas exactement les mêmes règles ; utilisez donc l’API adaptée au composant manipulé.

Démarrage rapide#

L’exemple suivant utilise l’API standard de C# ou une bibliothèque couramment utilisée pour cette tâche.

Exemple#

C#
1string value = "café & tea + cake";2string encoded = Uri.EscapeDataString(value);3string decoded = Uri.UnescapeDataString(encoded);45Console.WriteLine(encoded);6Console.WriteLine(decoded);

Opérations courantes#

Ce second exemple couvre une opération fréquente en production ou une manière plus sûre de traiter des entrées réelles.

Variante courante#

C#
1var query = new Dictionary<string, string?>2{3    ["q"] = "café & tea",4    ["page"] = "1"5};67string qs = string.Join("&", query.Select(pair =>8    $"{Uri.EscapeDataString(pair.Key)}={Uri.EscapeDataString(pair.Value ?? string.Empty)}"));

Points importants#

Encodez le composant approprié plutôt qu’une URL structurée entière. Les chemins, les valeurs de requête et les formulaires n’emploient pas exactement les mêmes règles.

Bonnes pratiques#

  1. Considérez toute entrée externe comme non fiable et gérez explicitement les erreurs d’analyse ou de validation.
  2. Rendez explicites l’encodage, les unités, les formats et les conventions propres aux bibliothèques aux frontières du système.
  3. Ajoutez des tests couvrant l’entrée vide, le texte Unicode, les entrées invalides et des données représentatives de la production.

Références#

Implémenter URL Encoding dans d'autres langages :