IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

C# URL Encode (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 23 avril 2026

Encodage d'URL et le décodage sont des techniques utilisées en C# pour garantir la transmission sécurisée des données dans les URL. En C#, ces opérations sont couramment rencontrées lors de la gestion d'applications web, d'appels d'API, ou de tout scénario où les données doivent être transmises sur Internet de manière sécurisée et fiable. Dans cet article, nous explorerons la méthode d'encodage d'URL et la bibliothèque IronPDF.

Encodage d'URL en C#

Lorsque vous encodez une URL, vous transformez ses caractères en une forme qui peut être envoyée en toute sécurité sur Internet, évitant ainsi tout malentendu. C'est parce que les URL ne peuvent être envoyées sur Internet qu'en utilisant le jeu de caractères ASCII. Les caractères qui ne font pas partie de cet ensemble, ou qui ont des significations spéciales dans les URL (comme les espaces, les esperluettes et les signes égal), doivent être représentés en utilisant l'encodage par pourcentage (par exemple, les espaces deviennent %20). C# fournit des méthodes intégrées pour accomplir cette tâche.

Décodage d'URL en C#

Le décodage d'URL transforme les caractères encodés pour revenir à leur état d'origine lors de leur arrivée à destination. C'est essentiel pour que l'application de réception comprenne correctement et traite les données comme prévu. Le décodage transforme les caractères encodés par pourcentage en leurs symboles originaux, rendant les données à nouveau lisibles et utilisables.

Méthodes d'encodage en C#

En C#, il existe plusieurs façons d'effectuer l'encodage d'URL, chacune adaptée à différents scénarios. Ces méthodes se trouvent principalement dans les espaces de noms System.Web et System.Net, offrant aux développeurs une flexibilité dans la manière dont ils encodent les URL. Voici un aperçu des méthodes disponibles :

  1. Méthode HttpUtility.UrlEncode (System.Web) : Il s'agit peut-être de la méthode la plus couramment utilisée pour l'encodage d'URL dans une application Web. Elle convertit les caractères au format encodé par pourcentage, rendant la chaîne sûre pour la transmission sur l'URL. Elle est particulièrement utile dans les projets ASP.NET pour encoder les chaînes de requête et les paramètres de formulaire.
  2. Méthode HttpUtility.UrlPathEncode (System.Web) : contrairement à UrlEncode , UrlPathEncode est conçu spécifiquement pour encoder la partie chemin d'une URL, laissant la chaîne de requête intacte. Il est important de noter que cette méthode ne code pas l'intégralité de l'URL mais plutôt la partie chemin, assurant que la structure hiérarchique de l'URL est préservée.
  3. Méthode Uri.EscapeUriString (System) : Cette méthode est destinée à échapper les chaînes URI, en transformant tous les caractères non autorisés dans une URI en leurs équivalents encodés en pourcentage. Cependant, elle ne code pas certains caractères, comme la barre oblique (/) et le point d'interrogation (?), car ils sont considérés comme des caractères URI valides.
  4. Méthode Uri.EscapeDataString (System) : Cette méthode est conçue pour encoder une chaîne à utiliser dans la partie requête d'un URI. Elle encode tous les caractères sauf les caractères non réservés définis dans la RFC 3986. Elle est plus agressive que EscapeUriString, garantissant que les données sont encodées en toute sécurité pour la transmission dans les URL.

Comprenons les trois premières méthodes d'encodage comme décrit ci-dessus, et leur fonctionnement en comprenant leurs exemples de code.

Exemple de code de la méthode HttpUtility.UrlEncode

using System;
using System.Web;

class Program
{
    static void Main()
    {
        string originalPath = "/api/search/Hello World!";
        string encodedPath = UrlEncode(originalPath);
        
        Console.WriteLine("Original Path: " + originalPath);
        Console.WriteLine("Encoded Path: " + encodedPath);
    }

    public static string UrlEncode(string originalString)
    {
        return HttpUtility.UrlEncode(originalString);
    }
}

Inclusion de l'espace de noms : L'espace de noms System.Web est inclus au début du code.

Chaîne d'origine : Nous définissons une variable de chaîne de caractères originalString contenant les caractères à encoder pour une transmission sécurisée dans une URL. Cela inclut des espaces et des signes de ponctuation qui pourraient potentiellement causer des problèmes s'ils étaient inclus dans une URL sans encodage.

Encodage : La méthode HttpUtility.UrlEncode est appelée avec originalString comme argument. Cette méthode traite la chaîne et renvoie une nouvelle chaîne où les caractères non sécurisés sont remplacés par leurs équivalents encodés par pourcentage. Par exemple, les espaces sont remplacés par %20.

Résultat : Enfin, le programme affiche sur la console les chaînes de caractères originales et encodées.

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 1 - Sortie de la console montrant les chaînes originales et encodées

Exemple de code de la méthode HttpUtility.UrlPathEncode

using System;
using System.Web;

class Program
{
    static void Main()
    {
        // Define the original URL path, which includes spaces.
        string originalPath = "/api/search/Hello World!";
        
        // Use the HttpUtility.UrlPathEncode method to encode the path.
        string encodedPath = HttpUtility.UrlPathEncode(originalPath);
        
        // Output the original and encoded paths to the console.
        Console.WriteLine("Original Path: " + originalPath);
        Console.WriteLine("Encoded Path: " + encodedPath);
    }
}

Équivalents entités de caractères dans l'encodage d'URL: Le processus montré transforme la valeur de chaîne d'un chemin d'URL, convertissant les espaces en leurs équivalents d'entité de caractère (%20) pour la compatibilité web. C'est crucial car les URL ne peuvent pas contenir d'espaces réels.

Valeur de chaîne et gestion des chaînes URL: La valeur de la variable originalPath est "/api/search/Hello World!", ce qui est un exemple typique de chaîne URL devant être encodée en raison de l'inclusion d'espaces.

Bien que cet exemple utilise une version spécifique de HttpUtility.UrlPathEncode sans surcharge de méthode, il est important de noter l'intention de conception de la méthode pour encoder les chemins URL. Les développeurs doivent être conscients des surcharges de méthode lorsqu'elles existent, car elles fournissent des moyens alternatifs d'utiliser une méthode, souvent en acceptant différents types d'entrée ou en fournissant des fonctionnalités supplémentaires.

Objet d'encodage et transformation de chaîne URL: L'objet d'encodage dans ce contexte est implicite dans l'opération de la méthode HttpUtility.UrlPathEncode, qui prend une URL de chaîne et renvoie sa forme encodée. Cette méthode garantit que la structure du chemin de l'URL reste intacte tout en encodant les caractères spéciaux à leurs représentations appropriées.

Sortie du chemin encodé: Le programme démontre la transformation du chemin original au chemin encodé. Il s'agit d'un exemple direct d'encodage d'une URL de chaîne pour l'adapter à la transmission web, abordant les problèmes potentiels que les espaces et autres caractères spéciaux pourraient introduire.

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 2 - Sortie de la console montrant les chaînes originales et encodées

Exemple de code de la méthode Uri.EscapeUriString

using System;

class Program
{
    static void Main()
    {
        string originalUri = "https://example.com/search?query=Hello World!";
        string escapedUri = Uri.EscapeUriString(originalUri);
        
        Console.WriteLine("Original URI: " + originalUri);
        Console.WriteLine("Escaped URI: " + escapedUri);
    }
}

URI d'origine : La variable originalUri est initialisée avec une chaîne de caractères représentant un URI complet, incluant une chaîne de requête avec des espaces et des caractères spéciaux. Pour garantir que l'URI est correctement traité par les navigateurs web et les serveurs, ces caractères spéciaux doivent être 'échappés'.

Échappement de l'URI : La méthode Uri.EscapeUriString est appelée avec originalUri comme argument. Cette méthode scanne la chaîne URI et échappe les caractères qui ne sont pas autorisés ou pourraient causer des ambiguïtés dans un URI.

Résultat : Le programme affiche l'URI d'origine et l'URI échappée sur la console.

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 3 - Sortie de la console montrant les chaînes originales et encodées

IronPDF : Bibliothèque PDF en C#

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 4 - Page Web IronPDF

IronPDF est une bibliothèque PDF qui simplifie la création, l'édition et la manipulation de fichiers PDF dans les applications .NET. Conçu pour s'intégrer parfaitement avec C# et VB.NET, IronPDF offre aux développeurs les fonctions pour générer des PDF à partir de HTML ou directement à partir de texte. Que vous ayez besoin d'automatiser la génération de factures, de créer des rapports dynamiques, ou de gérer des documents dans un environnement .NET, IronPDF se distingue par sa facilité d'utilisation et son ensemble complet de fonctionnalités.

Le point culminant d'IronPDF est sa fonctionnalité de Conversion HTML en PDF, préservant vos mises en page et styles. Cela permet la création de PDF à partir de contenu web, parfait pour les rapports, les factures et la documentation. Les fichiers HTML, les URL, et les chaînes HTML peuvent être convertis en PDF facilement.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Exemple de code fonctionnant avec l'encodage d'URL

Dans l'exemple suivant, nous verrons comment utiliser IronPDF en conjonction avec l'encodage d'URL pour générer un PDF à partir d'une page web. Le scénario implique l'encodage d'une URL pour s'assurer qu'elle est correctement formatée pour les requêtes web, puis l'utilisation d'IronPDF pour convertir le contenu à cette URL en un document PDF.

Installer la bibliothèque IronPDF

Tout d'abord, assurez-vous d'avoir IronPDF installé dans votre projet. Si vous utilisez le Gestionnaire de Packages NuGet, vous pouvez l'installer en exécutant :

PM > Install-Package IronPdf

Exemple de code

Maintenant, plongeons dans le code :

using System.Web;
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        License.LicenseKey = "License-Key"; // Set your IronPDF license key
        string baseUrl = "https://example.com/search";
        
        // The query parameter with spaces that needs to be encoded
        string query = "Hello World!";
        
        // Encoding the query parameter to ensure the URL is correctly formatted
        string encodedQuery = HttpUtility.UrlEncode(query);
        
        // Constructing the full URL with the encoded query parameter
        string fullUrl = $"{baseUrl}?query={encodedQuery}";
        
        // Initialize the IronPDF HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();
        
        // Convert the web page at the encoded URL to a PDF document
        var pdf = renderer.RenderUrlAsPdf(fullUrl);
        
        // Save the PDF to a file
        string filePath = "webpage.pdf";
        pdf.SaveAs(filePath);
        
        Console.WriteLine($"PDF successfully created from: {fullUrl}");
        Console.WriteLine($"Saved to: {filePath}");
    }
}

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 5 - Sortie de la console sur la réussite de la conversion de l'URL en PDF

Explication du Code

L'exemple commence par une URL de base et une chaîne de requête contenant des espaces. La chaîne de requête est encodée à l'aide de HttpUtility.UrlEncode pour s'assurer qu'elle est transmise en toute sécurité dans l'URL. Après avoir encodé la requête, elle est ajoutée à l'URL de base pour former l'URL complète qui sera accédée.

Avec l'URL complète et encodée prête, ChromePdfRenderer d'IronPDF est utilisé pour récupérer la page web à cette URL et la convertir en un document PDF. Cela implique de créer une instance de la classe ChromePdfRenderer puis d'appeler RenderUrlAsPdf avec l'URL encodée. Enfin, le PDF généré est sauvegardé dans un fichier à l'aide de la méthode SaveAs. Le fichier résultant est un document PDF du contenu de la page web, accessible via l'URL encodée. Voici le fichier PDF de sortie :

Encodage d'URL en C# (Comment cela fonctionne pour les développeurs) : Figure 6 - PDF généré à partir de l'URL

Conclusion

Pour conclure, C# offre de puissantes capacités pour l'encodage et le décodage d'URL, garantissant que les données peuvent être transmises de manière sécurisée et efficace sur Internet. Grâce aux méthodes intégrées au sein des espaces de noms System.Web et System.Net, les développeurs peuvent encoder les URL pour éviter les problèmes avec les caractères spéciaux et les décoder à leur forme originale pour une interprétation précise des données.

Pour ceux intéressés par l'exploration des offres de licence d'essai d'IronPDF, elles offrent l'opportunité d'évaluer ses fonctionnalités de première main. Si vous décidez d'intégrer IronPDF dans vos projets, les licences commencent à $999, offrant une suite de fonctionnalités complète pour répondre à vos besoins de manipulation de PDF au sein du framework .NET.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $