URL Encode / Decode

Metni bir URL bileşeni için yüzde kodlamasına dönüştürün veya kodlanmış değeri çözün; tam adres ve form verisiyle farkını doğru yorumlayın.

Sonuç

Hazır

Alanları doldurarak başlayın.

URL encode, bir URL bileşenindeki karakterleri gerektiğinde yüzde işaretli bayt dizileriyle gösterir. Bu araç kodlama için JavaScript'in encodeURIComponent, çözme için decodeURIComponent işlevini kullanır. Dönüşüm tarayıcıda yapılır ve en fazla 200.000 karakterlik giriş kabul edilir.

URL encode çıktısı nasıl okunur?

RFC 3986 yüzde kodlamasını, yüzde işareti ile onu izleyen iki onaltılık rakamdan oluşan bir üçlü olarak tanımlar. Metin önce baytlara çevrilir, ardından kodlanması gereken her bayt ayrı bir üçlü olur. Bu nedenle bir Türkçe karakter tek bir yüzde dizisi olmak zorunda değildir. Örneğin ç, UTF-8 karşılığı üzerinden %C3%A7 olur.

Text to URL encode işleminde hangi karakterin değişeceği, verinin URL içindeki görevine bağlıdır. Boşluk veri içinde %20, ayırıcı anlamı taşıyabilecek & ise %26 olur. Harfler, rakamlar ve - _ . ~ gibi ayrılmamış karakterler genellikle olduğu gibi kalır.

GirdiİşlemSonuç
a b&cKodlaa%20b%26c
çKodla%C3%A7
a%20bÇöza b
%20Kodla%2520

Tam URL ile URL bileşeni arasındaki fark

Bu araç bir URL'nin tamamını değil, sorgu parametresi değeri, yol parçası veya benzer tek bir bileşeni kodlamak için tasarlanmıştır. https://example.com/?q=a b metninin tamamını kodlarsanız iki nokta, eğik çizgi, soru işareti ve eşittir işareti de dönüşür. Sonuç https%3A%2F%2Fexample.com%2F%3Fq%3Da%20b olur ve doğrudan açılacak adres biçimini korumaz.

Arama değeri a b&c ise yalnız bu değeri kodlayıp https://example.com/?q=a%20b%26c içine yerleştirin. JavaScript URL encode kullanımında bu ayrım, parametre içindeki & karakterinin yeni bir parametre ayırıcısı sanılmasını önler.

HTML URL encode ile HTML kaçışını da ayırmak gerekir. Bir HTML belgesinde bağlantının kendi ayırıcı & işareti kaynak kodda & yazılabilir. Parametre değerinin parçası olan gerçek & ise URL içinde %26 olmalıdır. Bu iki dönüşüm farklı katmanların kurallarıdır.

Boşluk için %20 ve + neden farklı sonuç verir?

WHATWG URL Standardı, application/x-www-form-urlencoded biçiminde boşluğu + olarak yazan ayrı bir serileştirme tanımlar. Aynı biçimde gerçek artı işareti veri ise %2B olarak kodlanır. Bu araç form serileştirmesi yapmaz: a+b çözülünce yine a+b kalır, a%20b ise a b olur. Form gövdesinden veya sorgu ayrıştırıcısından alınan veride hangi kuralın kullanıldığını bilmeden iki gösterimi birbirinin yerine koymayın.

Çift kodlama ve geçersiz diziler

Yüzde işareti veri olarak kodlandığında %25 olur. Bu yüzden zaten kodlanmış %20 metnini yeniden kodlamak %2520 üretir. Çözme işlemini iki kez uygulamak da ilk aşamada veri olan bir yüzde dizisini ikinci aşamada komut gibi yorumlayabilir. RFC 3986, aynı metnin birden fazla kez kodlanmaması veya çözülmemesi gerektiğini özellikle belirtir.

Eksik %, onaltılık olmayan %G0 ya da geçerli UTF-8 oluşturmayan yüzde dizileri çözülemez. Araç böyle bir girişte sonuç uydurmak yerine hata gösterir. Sorunu bulmak için her yüzde işaretinden sonra iki onaltılık rakam bulunduğunu ve metnin daha önce kaç kez dönüştürüldüğünü kontrol edin.

Sık sorulan sorular

URL encode ile Base64 aynı işlem mi?

Hayır. URL encode, URL bileşenlerinde özel anlam taşıyan veya izin verilmeyen baytları yüzde dizileriyle gösterir. Base64 ise veriyi farklı bir metin alfabesiyle temsil eder. İkisi de şifreleme değildir.

Apostrof neden kodlanmadan kalıyor?

Araç JavaScript encodeURIComponent işlevini kullandığı için apostrof, ünlem, yıldız ve parantez karakterlerini değiştirmez. RFC 3986 için daha katı bir çıktı gereken sistemler bu karakterleri ayrıca yüzde kodlamasına çevirebilir.

%2f ile %2F arasında fark var mı?

Hayır. Yüzde dizilerindeki onaltılık A ile F harfleri büyük veya küçük yazılabilir. Araç kodlama çıktısında büyük harf üretir ve iki biçimi de çözebilir.

Decode işlemi bağlantıyı açar mı?

Hayır. Araç yalnızca girilen metni dönüştürür; adrese istek göndermez, hedefin çalıştığını veya güvenli olduğunu denetlemez.