IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# URL Encode (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 23 Nisan 2026

URL kodlama ve çözme, C# dilinde veri bütünlüğünü sağlamak ve güvenli veri taşıması için kullanılır. C# dilinde, bu işlemler genellikle web uygulamaları, API çağrıları veya verilerin internet üzerinden güvenli ve güvenilir bir şekilde aktarılması gereken herhangi bir senaryo ile karşılaşılır. Bu makalede, URL kodlama yöntemini ve IronPDF kütüphanesini keşfedeceğiz.

C# Dilinde URL Kodlama

Bir URL kodladığınızda, karakterlerini internete güvenli bir şekilde gönderilebilecek bir forma dönüştürürsünüz, yanılgılardan kaçınırsınız. Çünkü URL'ler yalnızca ASCII karakter seti kullanılarak internete gönderilebilir. Bu setin bir parçası olmayan veya URL'lerde özel anlamlara sahip olan karakterler (örneğin, boşluklar, & ve = işaretleri), yüzde kodlaması kullanılarak temsil edilmelidir (örneğin, boşluklar %20 haline gelir). C# bunu başarmak için yerleşik yöntemler sunar.

C# Dilinde URL Çözme

URL çözme, varış noktasına vardığında kodlanmış karakterleri orijinal hallerine dönüştürür. Bu, alıcı uygulamanın veriyi doğru şekilde anlaması ve işlem yapabilmesi için gereklidir. Çözme, yüzde kodlanmış karakterleri yeniden orijinal sembollerine dönüştürür, böylece veri tekrar okunabilir ve kullanılabilir hale gelir.

C# Dilinde Kodlama Yöntemleri

C# dilinde, her biri farklı senaryolar için uygun olan birden fazla URL kodlama yöntemi vardır. Bu yöntemler esas olarak System.Web ve System.Net ad alanlarında bulunur ve geliştiricilere URL'leri nasıl kodlamak istedikleri konusunda esneklik sağlar. İşte mevcut yöntemlerin kısa bir özeti:

  1. HttpUtility.UrlEncode Yöntemi (System.Web): Bu, web uygulamalarında URL kodlama için belki de en yaygın kullanılan yöntemdir. Karakterleri yüzde kodlu formata dönüştürerek diziyi URL üzerinden iletim için güvenli hale getirir. Özellikle ASP.NET projelerinde sorgu dizeleri ve form parametrelerini kodlamak için kullanışlıdır.
  2. HttpUtility.UrlPathEncode Yöntemi (System.Web): UrlEncodeden farklı olarak, UrlPathEncode URL'nin yol kısmını kodlamaya özgüdür, sorgu dizisini dokunulmadan bırakır. Bu yöntem tüm URL'yi değil, yalnızca yol bölümünü kodlar, URL'nin hiyerarşik yapısının korunduğundan emin olur.
  3. Uri.EscapeUriString Yöntemi (System): Bu yöntem, URI dizelerini kaçırtmak için tasarlanmıştır ve bir URI'de bulunmasına izin verilmeyen tüm karakterleri yüzde kodlu eşdeğerlerine dönüştürür. Ancak, eğik çizgi (/) ve soru işareti (?) gibi bazı karakterleri kodlamaz, çünkü bunlar geçerli URI karakterleri olarak kabul edilir.
  4. Uri.EscapeDataString Yöntemi (System): Bu yöntem, bir URI'nin sorgu bölümünde kullanılacak bir dizeyi kodlamak için tasarlanmıştır. RFC 3986'da tanımlanan serbest bırakılmış karakterler haricindeki tüm karakterleri kodlar. EscapeUriStringden daha agresiftir, verilerin URL'ler içinde güvenli bir şekilde kodlandığından emin olur.

Yukarıda bahsedilen ilk üç kodlama yöntemini anlamak ve nasıl çalıştıklarını kod örneklerini anlatarak görelim.

HttpUtility.UrlEncode Yöntemi Kod Örneği

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

Namespace Dahil Etme: Kodun başında System.Web ad alanı dahil edilmiştir.

Orijinal Dize: URL'de güvenli iletim için kodlanacak karakterleri içeren originalString adında bir dize değişkeni tanımlanır. Bu, bir URL'de kodlanmış olmadan dahil edilirse sorunlara yol açabilecek boşluklar ve noktalama işaretlerini içerir.

Kodlama: HttpUtility.UrlEncode yöntemi, bağımsız değişken olarak originalString ile çağrılır. Bu yöntem dizeyi işler ve güvensiz karakterlerin yüzde kodlu eşdeğerleriyle değiştirildiği yeni bir dize döndürür. Örneğin, boşluklar %20 ile değiştirilir.

Çıktı: Son olarak, program hem orijinal hem de kodlanmış dizeleri konsola yazdırır.

C# URL Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Konsol çıktısı, orijinal ve kodlanmış dizeleri gösteriyor

HttpUtility.UrlPathEncode Yöntemi Kod Örneği

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

URL Kodlamasında Karakter Varlığı Eşdeğerleri: Gösterilen işlem, bir URL yolunun dize değerini dönüştürerek, web uyumluluğu için boşlukları karakter varlığı eşdeğerlerine (%20) dönüştürür. Bu, URL'lerin gerçek boşluk karakterleri içerememesi nedeniyle çok önemlidir.

Dize Değeri ve URL Dizesi İşleme: originalPath değişkeninin dize değeri "/api/search/Hello World!" olup, boşlukların dahil edilmesi nedeniyle kodlanması gereken tipik bir URL dize örneğidir.

Bu örnek, method overloads olmadan belirli bir HttpUtility.UrlPathEncode sürümü kullanıyor, ancak yöntem yolunu kodlama niyeti gösterilmesine dikkat çeken bir tasarıma sahiptir. Geliştiriciler, mevcut olduklarında method overloads'un nasıl kullanılacağı konusunda alternatif yollar sağladıklarından ve genellikle farklı türde giriş kabul ederek veya ek işlevsellik sunarak yöntemlere dair farklı yöntemlerden haberdar olmalıdır.

Kodlama Nesnesi ve Dize URL Dönüşümü: Bu bağlamda kodlama nesnesi, bir dize URL alıp onun kodlanmış halini döndüren HttpUtility.UrlPathEncode yönteminin işleyişinde örtük olarak yer almaktadır. Bu yöntem, özel karakterlerin uygun temsilciliklerine kodlanırken URL yolu yapısının sağlam kalmasını sağlar.

Kodlanmış Yol Çıktısı: Program, orijinal yoldan kodlanmış yola dönüşümü gösterir. Bu, bir dize URL kodlayarak web iletimi için adapte etmeye yönelik doğrudan bir örnektir ve boşluklar ve diğer özel karakterlerin neden olabileceği potansiyel sorunları ele alır.

C# URL Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Konsol çıktısı, orijinal ve kodlanmış dizeleri gösteriyor

Uri.EscapeUriString Yöntemi Kod Örneği

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

Orijinal URI: originalUri değişkeni, boşluklar ve özel karakterleri içeren bir sorgu dizesi dahil tam bir URI'yi temsil eden bir dizeyle başlatılır. Web tarayıcıları ve sunucular tarafından doğru işlendiğinden emin olmak için bu özel karakterler 'kaçırılmalıdır'.

URI'yi Kaçırma: Uri.EscapeUriString yöntemi, originalUri bağımsız değişkeni ile çağrılır. Bu yöntem, URI dizisini tarar ve bir URI'de izin verilmeyen veya belirsizlik yaratabilecek karakterleri kaçırır.

Çıktı: Program, hem orijinal hem de kaçırılmış URI'yi konsola yazdırır.

C# URL Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Konsol çıktısı, orijinal ve kodlanmış dizeleri gösteriyor

IronPDF: C# PDF Kütüphanesi

C# URL Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - IronPDF websayfası

IronPDF, .NET uygulamaları içinde PDF dosyaları oluşturmayı, düzenlemeyi ve işlemeyi basitleştiren bir PDF kütüphanesidir. C# ve VB.NET ile sorunsuz bir şekilde entegre olacak şekilde tasarlanan IronPDF, geliştiricilere HTML'den PDF veya doğrudan metinden PDF oluşturmayı sağlar. Fatura oluşturmayı otomatikleştirmeniz, dinamik raporlar oluşturmanız veya .NET ortamında belgeleri yönetmeniz gerektiğinde, IronPDF kullanış kolaylığı ve kapsamlı özellik setiyle öne çıkar.

IronPDF'in en önemli özelliği, HTML'yi PDF'ye Dönüştürme özelliği olup, düzenlerinizi ve stillerinizi korur. Bu, web içeriğinden PDF oluşturmayı sağlar ve raporlar, faturalar ve dokümantasyon için mükemmeldir. HTML dosyaları, URL'ler ve HTML dizeleri kolayca PDF'lere dönüştürülebilir.

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

URL Kodlama İle Çalışan Kod Örneği

Aşağıdaki örnekte, IronPDF'i URL kodlama ile birlikte kullanarak bir web sayfasından PDF oluşturmayı nasıl yapacağınızı göreceğiz. Senaryo, web istekleri için doğru biçimde olması gereken bir URL'yi kodlamayı ve ardından o URL'deki içeriği IronPDF kullanarak bir PDF belgesine dönüştürmeyi içerir.

IronPDF Kütüphanesi Yükleme

Öncelikle, projenizde IronPDF'in kurulu olduğundan emin olun. NuGet Paket Yöneticisini kullanıyorsanız, şu komutu çalıştırarak yükleyebilirsiniz:

PM > Install-Package IronPdf

Kod Örneği

Şimdi koduna bir göz atalım:

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 Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - URL'nin PDF'ye dönüştürülmesinin başarısı hakkında konsol çıktısı

Kodun Açıklaması

Örnek, boşluklar içeren bir baz URL ve bir sorgu dizesi ile başlar. Sorgu dizesi, URL'de güvenle iletilebilmesi için HttpUtility.UrlEncode kullanılarak kodlanır. Sorgu kodlandıktan sonra, tamamlanmış bir URL oluşturulmak üzere baz URL'ye eklenir.

Tam, kodlanmış URL hazır olduğunda, IronPDF'in ChromePdfRendererı o URL'deki web sayfasını çekmek ve bir PDF belgesine dönüştürmek için kullanılır. Bu, ChromePdfRenderer sınıfının bir örneğini yaratmayı ve ardından kodlanmış URL ile RenderUrlAsPdf kullanmayı içerir. Son olarak, oluşturulan PDF, SaveAs yöntemi kullanılarak bir dosyaya kaydedilir. Ortaya çıkan dosya, kodlanmış URL aracılığıyla erişilebilen web sayfa içeriğinin PDF belgesidir. İşte çıktı PDF dosyası:

C# URL Kodlama (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - URL'den çıktı PDF

Sonuç

Sonuç olarak, C#, internet üzerinden güvenli ve verimli bir şekilde veri aktarımını sağlamak için güçlü URL kodlama ve kod çözme yetenekleri sunar. System.Web ve System.Net ad alanlarındaki yerleşik yöntemler sayesinde, geliştiriciler özel karakterlerle ilgili sorunları önlemek için URL'leri kodlayabilir ve doğru veri yorumu için bunları orijinal şekline çözebilir.

Eğer IronPDF Deneme Lisans Teklifleri'ni keşfetmekle ilgileniyorsanız, işlevselliğini yakından değerlendirme fırsatı sunar. IronPDF'i projelerinize entegre etmeye karar verirseniz, lisanslar @$999'dan başlar ve .NET framework içerisinde PDF işleme ihtiyaçlarınızı karşılamak için kapsamlı bir özellik seti sunar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez