IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Kodowanie adresów URL w języku C# (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 23 kwietnia 2026

Kodowanie i dekodowanie adresów URL to techniki stosowane w języku C# w celu zapewnienia bezpiecznej transmisji danych w ramach adresów URL. W języku C# operacje te są powszechnie spotykane podczas pracy z aplikacjami internetowymi, wywołaniami API lub w każdym scenariuszu, w którym dane muszą być przesyłane przez Internet w sposób bezpieczny i niezawodny. W tym artykułe omówimy metodę kodowania adresów URL oraz bibliotekę IronPDF.

Kodowanie adresów URL w języku C#

Kiedy kodujesz adres URL, zmieniasz jego znaki na formę, którą można bezpiecznie przesłać przez Internet, unikając nieporozumień. Wynika to z faktu, że adresy URL mogą być przesyłane przez Internet wyłącznie przy użyciu zestawu znaków ASCII. Znaki, które nie należą do tego zestawu lub mają specjalne znaczenie w adresach URL (takie jak spacje, znaki "&" i znaki równości), muszą być przedstawione przy użyciu kodowania procentowego (np. spacje stają się %20). Język C# udostępnia wbudowane metody umożliwiające realizację tego zadania.

Dekodowanie adresów URL w języku C#

Dekodowanie adresów URL przekształca zakodowane znaki z powrotem do ich pierwotnego stanu po dotarciu do miejsca docelowego. Ma to zasadnicze znaczenie dla prawidłowego zrozumienia i przetworzenia danych przez aplikację docelową zgodnie z zamierzeniami. Dekodowanie zamienia znaki zakodowane w formacie procentowym z powrotem na ich oryginalne symbole, dzięki czemu dane stają się ponownie czytelne i użyteczne.

Metody kodowania w języku C#

W języku C# istnieje wiele sposobów kodowania adresów URL, z których każdy jest dostosowany do różnych scenariuszy. Metody te znajdują się głównie w przestrzeniach nazw System.Web i System.Net, oferując programistom elastyczność w sposobie kodowania adresów URL. Oto krótki przegląd dostępnych metod:

  1. Metoda HttpUtility.UrlEncode (System.Web): Jest to prawdopodobnie najczęściej stosowana metoda kodowania adresów URL w aplikacjach internetowych. Konwertuje znaki na format zakodowany procentowo, dzięki czemu ciąg znaków jest bezpieczny do przesyłania w adresie URL. Jest to szczególnie przydatne w projektach ASP.NET do kodowania ciągów zapytań i parametrów formularzy.
  2. Metoda HttpUtility.UrlPathEncode (System.Web): W przeciwieństwie do UrlEncode, UrlPathEncode jest przeznaczona specjalnie do kodowania części ścieżki adresu URL, pozostawiając ciąg zapytania bez zmian. Należy pamiętać, że ta metoda nie koduje całego adresu URL, a jedynie część ścieżki, co pozwala zachować hierarchiczną strukturę adresu.
  3. Metoda Uri.EscapeUriString (System): Ta metoda służy do escapowania ciągów URI, zamieniając wszystkie znaki niedozwolone w URI na ich odpowiedniki zakodowane procentowo. Nie koduje jednak niektórych znaków, takich jak ukośnik (/) i znak zapytania (?), ponieważ są one uznawane za prawidłowe znaki URI.
  4. Metoda Uri.EscapeDataString (System): Ta metoda służy do kodowania ciągu znaków, który ma być użyty w części zapytania adresu URI. Koduje wszystkie znaki z wyjątkiem znaków niezarezerwowanych zdefiniowanych w RFC 3986. Działa bardziej agresywnie niż EscapeUriString, zapewniając bezpieczne zakodowanie danych do transmisji w adresach URL.

Przyjrzyjmy się trzem pierwszym metodom kodowania opisanym powyżej oraz ich działaniu na podstawie przykładów kodu.

Przykład kodu metody 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);
    }
}

Włączenie przestrzeni nazw: Przestrzeń nazw System.Web jest dołączona na początku kodu.

Oryginalny ciąg znaków: Definiujemy zmienną typu string o nazwie originalString zawierającą znaki, które należy zakodować w celu bezpiecznej transmisji w adresie URL. Dotyczy to również spacji i znaków interpunkcyjnych, które mogłyby potencjalnie powodować problemy, gdyby znalazły się w adresie URL bez kodowania.

Kodowanie: Metoda HttpUtility.UrlEncode jest wywoływana z argumentem originalString. Ta metoda przetwarza ciąg znaków i zwraca nowy ciąg, w którym niebezpieczne znaki są zastępowane ich odpowiednikami zakodowanymi w formacie procentowym. Na przykład spacje są zastępowane znakiem %20.

Wynik: Na koniec program PRINTuje na konsoli zarówno oryginalne, jak i zakodowane ciągi znaków.

C# URL Encode (Jak to działa dla deweloperów): Rysunek 1 - Wyjście konsoli pokazujące oryginalne i zakodowane ciągi

Przykład kodu metody 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);
    }
}

Odpowiedniki znaków w kodowaniu adresów URL: Przedstawiony proces przekształca wartość ciągu znaków ścieżki adresu URL, zamieniając spacje na ich odpowiedniki znaków (%20) w celu zapewnienia zgodności z siecią. Jest to kluczowe, ponieważ adresy URL nie mogą zawierać rzeczywistych znaków spacji.

Obsługa wartości ciągów znaków i ciągów URL: Wartość ciągu znaków zmiennej originalPath to "/api/search/Hello World!", co jest typowym przykładem ciągu URL wymagającego kodowania ze względu na obecność spacji.

Chociaż w tym przykładzie użyto konkretnej wersji metody HttpUtility.UrlPathEncode bez przeciążenia, należy zwrócić uwagę na zamierzoną funkcję tej metody, jaką jest kodowanie ścieżek URL. Programiści powinni być świadomi istnienia przeciążenia metod, ponieważ zapewnia ono alternatywne sposoby korzystania z danej metody, często poprzez akceptowanie różnych typów danych wejściowych lub zapewnianie dodatkowej funkcjonalności.

Obiekt kodujący i transformacja adresu URL typu string: Obiekt kodujący w tym kontekście jest domyślnie zawarty w działaniu metody HttpUtility.UrlPathEncode, która pobiera adres URL typu string i zwraca jego zakodowaną formę. Ta metoda gwarantuje, że struktura ścieżki URL pozostaje nienaruszona, a znaki specjalne są kodowane do odpowiednich reprezentacji.

Wynik zakodowanej ścieżki: Program pokazuje przekształcenie oryginalnej ścieżki w ścieżkę zakodowaną. Jest to bezpośredni przykład kodowania ciągu znaków URL w celu dostosowania go do transmisji internetowej, uwzględniający potencjalne problemy, jakie mogą powodować spacje i inne znaki specjalne.

C# URL Encode (Jak to działa dla deweloperów): Rysunek 2 - Wyjście konsoli pokazujące oryginalne i zakodowane ciągi

Przykład kodu metody 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);
    }
}

Oryginalny URI: Zmienna originalUri jest inicjowana ciągiem znaków reprezentującym pełny adres URI, w tym ciąg zapytania zawierający spacje i znaki specjalne. Aby zapewnić prawidłowe przetwarzanie adresu URI przez przeglądarki internetowe i serwery, znaki specjalne muszą zostać "eskapowane".

Eskapowanie adresu URI: Metoda Uri.EscapeUriString jest wywoływana z argumentem originalUri. Ta metoda skanuje ciąg URI i zamienia znaki, które są niedozwolone lub mogą powodować niejasności w URI.

Wynik: Program wyświetla na konsoli zarówno oryginalny, jak i zakodowany adres URI.

C# URL Encode (Jak to działa dla deweloperów): Rysunek 3 - Wyjście konsoli pokazujące oryginalne i zakodowane ciągi

IronPDF: biblioteka PDF dla języka C#

C# URL Encode (Jak to działa dla deweloperów): Rysunek 4 - Strona internetowa IronPDF

IronPDF to biblioteka PDF, która ułatwia tworzenie, edycję i obróbkę plików PDF w aplikacjach .NET. Zaprojektowany z myślą o płynnej integracji z C# i VB.NET, IronPDF oferuje programistom funkcje generowania plików PDF z HTML lub bezpośrednio z tekstu. Niezależnie od tego, czy potrzebujesz zautomatyzować generowanie faktur, tworzyć dynamiczne raporty, czy zarządzać dokumentami w środowisku .NET, IronPDF wyróżnia się łatwością obsługi i kompleksowym zestawem funkcji.

Najważniejszą cechą IronPDF jest funkcja konwersji HTML do PDF, która zachowuje układ i style. Umożliwia to tworzenie plików PDF na podstawie treści internetowych, co idealnie sprawdza się w przypadku raportów, faktur i dokumentacji. Pliki HTML, adresy URL i ciągi znaków HTML można łatwo konwertować do formatu PDF.

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");
    }
}

Przykład działającego kodu z kodowaniem adresów URL

W poniższym przykładzie zobaczymy, jak używać IronPDF w połączeniu z kodowaniem URL do generowania pliku PDF ze strony internetowej. Scenariusz obejmuje kodowanie adresu URL w celu zapewnienia jego prawidłowego formatowania dla żądań internetowych, a następnie użycie IronPDF do konwersji treści pod tym adresem URL na dokument PDF.

Zainstaluj bibliotekę IronPDF

Najpierw upewnij się, że masz zainstalowany IronPDF w swoim projekcie. Jeśli korzystasz z menedżera pakietów NuGet, możesz zainstalować go, uruchamiając:

PM > Install-Package IronPdf

Przykład kodu

Przejdźmy teraz do kodu:

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}");
    }
}

C# URL Encode (Jak to działa dla deweloperów): Rysunek 5 - Wyjście konsoli po pomyślnym przekształceniu URL na PDF

Wyjaśnienie kodu

Przykład zaczyna się od podstawowego adresu URL i ciągu zapytania zawierającego spacje. Ciąg zapytania jest kodowany przy użyciu HttpUtility.UrlEncode, aby zapewnić jego bezpieczną transmisję w adresie URL. Po zakodowaniu zapytania jest ono dołączane do podstawowego adresu URL, tworząc pełny adres URL, do którego zostanie nawiązany dostęp.

Po przygotowaniu pełnego, zakodowanego adresu URL, ChromePdfRenderer firmy IronPDF służy do pobrania strony internetowej pod tym adresem i przekształcenia jej w dokument PDF. Wymaga to utworzenia instancji klasy ChromePdfRenderer, a następnie wywołania metody RenderUrlAsPdf z zakodowanym adresem URL. Na koniec wygenerowany plik PDF jest zapisywany przy użyciu metody SaveAs. Plikem wynikowym jest dokument PDF zawierający treść strony internetowej, dostępny poprzez zakodowany adres URL. Oto plik PDF z tłumaczeniem:

C# URL Encode (Jak to działa dla deweloperów): Rysunek 6 - Wygenerowany PDF z URL

Wnioski

C# URL Encode (Jak to działa dla deweloperów): Rysunek 7 - Strona licencjonowania IronPDF

Podsumowując, język C# zapewnia zaawansowane możliwości kodowania i dekodowania adresów URL, gwarantując bezpieczną i wydajną transmisję danych przez Internet. Dzięki wbudowanym metodom w przestrzeniach nazw System.Web i System.Net programiści mogą kodować adresy URL, aby zapobiec problemom ze znakami specjalnymi, oraz dekodować je do ich pierwotnej postaci w celu dokładnej interpretacji danych.

Osoby zainteresowane ofertą licencji Trial IronPDF mają możliwość osobistego przetestowania ich funkcjonalności. Jeśli zdecydujesz się zintegrować IronPDF z twoimi projektami, licencje zaczynają się od $999, oferując wszechstronny zestaw funkcji, który sprosta Twoim potrzebom manipulacji PDF w ramach .NET.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta