URL kodlama aracı ne yapar?
URL kodlama (yüzde kodlama), bir adresin ya da sorgu değerinin içinde özel anlam taşıyan veya ASCII dışında kalan karakterleri % işaretiyle iki onaltılık basamaktan oluşan dizilere çevirir. Kodlanması gereken karakterler UTF-8 baytlarına dönüştürülür, sonra bu baytlar %XX olarak yazılır; bu yüzden ç karakteri %C3%A7, İ karakteri ise %C4%B0 olur.
Bu araç tarayıcının kendi encodeURIComponent, encodeURI, decodeURIComponent ve decodeURI işlevlerini kullanır; ek kütüphane yoktur. Sonuç yalnızca bir metin kutusunda gösterilir ve hiçbir zaman bağlantı olarak açılmaz; biçimi bozuk bir adres bile metin dönüşümü olarak çalışır.
Nasıl kullanılır?
- Yönü seçin: kodla ya da çöz.
- Modu seçin: bileşen, tam adres (URI) veya form. Seçili modun kısa açıklaması formda görünür.
- Metni girdi kutusuna yazın ya da yapıştırın; sonuç siz yazdıkça güncellenir.
- Çıktıyı kopyalayın. Uyarılar çıktının üstünde listelenir; hata varsa sonuç gösterilmez ve hatanın konumu bildirilir.
- İsterseniz Örnek düğmesiyle Türkçe karakterli bir metin yükleyin, Temizle düğmesiyle her şeyi sıfırlayın.
Üç mod: bileşen, tam adres ve form
Doğru mod, kodladığınız parçanın adresin neresinde duracağına bağlıdır. Tablo her modun kodlarken neyi olduğu gibi bıraktığını ve çözerken nasıl davrandığını özetler.
| Mod | Kodlarken olduğu gibi kalanlar | Çözerken davranış |
|---|---|---|
Bileşen (encodeURIComponent) | Harfler, rakamlar ve - _ . ! ~ * ' ( ) | Bütün %XX dizilerini çözer; + işaretine dokunmaz |
Tam adres (encodeURI) | Bileşendekilerin yanında ; / ? : @ & = + $ , # ayrılmış karakterleri; %, [ ve ] kodlanır | Bu ayrılmış karakterleri temsil eden dizileri (%2F, %23 gibi) olduğu gibi bırakır |
| Form | Bileşen gibi; tek fark boşluğun + yazılması | Önce + boşluğa çevrilir, sonra %XX çözülür; gerçek artı işareti %2B olarak yazılır |
Bir sorgu parametresinin değerini kodluyorsanız bileşen modunu seçin: &, =, ? ve / gibi karakterler de kodlanır, böylece değer adresin yapısını bozmaz. Hazır bir adresin yalnızca Türkçe karakter ve boşluk gibi bölümlerini düzeltmek istiyorsanız tam adres modu ayraçları korur. Form modu, application/x-www-form-urlencoded gövdelerinde boşluğun + yazılması kuralına uyar.
Örnekler
Aşağıdaki girdiler ve çıktılar aracın nasıl çalıştığını gösterir. Metinler tasarım örneğidir; gerçek bir adres ya da kullanıcı verisi değildir.
Bileşen, kodla: İstanbul çay -> %C4%B0stanbul%20%C3%A7ay
Form, kodla: a b+c -> a+b%2Bc
Bileşen, kodla: a=b&c -> a%3Db%26c
Tam adres, kodla: https://example.com/çay?q=İstanbul çay&x=1#top
-> https://example.com/%C3%A7ay?q=%C4%B0stanbul%20%C3%A7ay&x=1#top
Bileşen, çöz: %252F -> %2FSon satır tek kat çözmeyi gösterir: %252F bir çalıştırmada %2F olur, / olmaz. İkinci kat için çıktıyı bilerek yeniden girdiye koymanız gerekir; araç döngüyle sonsuz çözme yapmaz.
Hatalar ve çift kodlama
Tarayıcı işlevleri geçersiz girdide URIError fırlatır; araç bunu yakalar ve konumuyla birlikte Türkçe bir hata olarak gösterir. Hiçbir durumda sessiz düzeltme yapılmaz.
%işaretinden sonra iki onaltılık basamak yoksa (%,%4,%zz) çözme durur ve konum bildirilir.- Dizi yüzde biçiminde geçerli ama UTF-8 olarak anlamsızsa (tek başına
%C5,%FF) hata alırsınız. - Eşleşmemiş vekil (surrogate) kod birimi içeren metin Unicode olarak geçersizdir; kodlama ve çözme girdisinde reddedilir.
- Kodlarken girdide zaten
%XXdizileri varsa uyarı çıkar:%karakteri%25olur ve çift kodlama oluşur. - Bileşen modunda çözerken
+boşluğa çevrilmez; bunun için form modunu seçin. Çözülen çıktı hâlâ%XXiçeriyorsa çift kodlanmış olabilir.
Çift kodlama en sık, zaten kodlu bir adresin yeniden kodlanmasıyla oluşur. Araç bunu düzeltmeye çalışmaz, yalnızca uyarır; hangi katmanın doğru olduğuna siz karar verirsiniz.
Sınırlar, gizlilik ve kaynaklar
- Girdi en fazla 100 KiB UTF-8 olabilir; çıktı ayrıca 256 KiB karakterle sınırlıdır. Bu değerler bu aracın tasarım sınırlarıdır, bir standardın değeri değildir.
- Girdi kaydedilmez ve sunucuya gönderilmez. Adres, belirteç ya da parola içerebilecek metin paylaşım bağlantısına, adres çubuğuna veya tarayıcı depolamasına yazılmaz.
- Paylaşım bağlantısı yalnızca seçtiğiniz yönü ve modu taşır; arayüz bunu ayrıca belirtir.
- Satır sonları ve boşluklar olduğu gibi kodlanır; metin kırpılmaz ve normalleştirilmez. Metin NFC biçiminde değilse uyarı görürsünüz.
- Teknik bilgiler 25 Ekim 2026 tarihinde MDN encodeURIComponent, MDN encodeURI, MDN decodeURI ve MDN Malformed URI sayfalarıyla doğrulandı.
Kampanya adreslerindeki sorgu parametreleri için UTM oluşturucu, adres parçaları için slug oluşturucu, alan adlarındaki Türkçe karakterler için ise Punycode dönüştürücü aracı var.
Sık sorulan sorular
encodeURI ile encodeURIComponent arasındaki fark nedir?
encodeURIComponent, ; / ? : @ & = + $ , # gibi ayrılmış karakterleri de kodlar; encodeURI bunları adres yapısının parçası sayıp bırakır. Parametre değerleri için bileşen, tam adresler için tam adres modunu kullanın.
Boşluk neden bazen %20, bazen + olarak yazılıyor?
Çoğu bağlamda boşluk %20 olur. application/x-www-form-urlencoded biçiminde ise boşluk + yazılır ve gerçek artı işareti %2B olur. Form modu bu ikinci kuralı uygular; diğer modlar çözme sırasında + karakterini olduğu gibi tutar.
Araç neden yalnızca bir kat çözüyor?
Tek çalıştırma tek kat çözer. %252F önce %2F olur; bilerek bir kat daha çözmek isterseniz çıktıyı girdiye koyun. Otomatik döngü hangi katmanın doğru olduğunu gizler ve beklenmedik karakterlere yol açabilir.
% veya %C5 yazınca neden hata alıyorum?
% işaretini iki onaltılık basamak izlemeli ve çözülen baytlar geçerli bir UTF-8 karakter oluşturmalıdır. Tek başına %C5 yarım bir karakterdir; tarayıcı bunu URIError ile reddeder, araç da hatanın konumunu söyler.
Yapıştırdığım adres ya da belirteç bir yere gönderiliyor mu?
Hayır. Dönüştürme tarayıcınızda yapılır; metin sunucuya gönderilmez, saklanmaz ve paylaşım bağlantısına eklenmez. Yine de gerçek parolaları herhangi bir çevrimiçi araca yapıştırmamak iyi bir alışkanlıktır.
Çıktıdaki adrese tıklayabilir miyim?
Çıktı bir metin kutusunda gösterilir ve bağlantıya dönüştürülmez. Adresi açmak istiyorsanız kopyalayıp kendiniz yapıştırın; araç hiçbir adrese istek göndermez.