URL Kodlama Nedir?
Yüzde kodlaması (percent-encoding) olarak da bilinen URL kodlama, herhangi bir veriyi bir Tekdüzen Kaynak Tanımlayıcı (URI) içinde gösterebilmek için RFC 3986 standardıyla tanımlanmış bir yöntemdir. Boşluklar, eğik çizgiler, soru işaretleri, ve işaretleri ve ASCII dışı harfler gibi pek çok karakterin bir URL içinde özel bir anlamı vardır ya da bu karakterler doğrudan güvenli kabul edilmez. Yüzde kodlaması, bu tür her baytı bir yüzde işareti (%) ve ardından baytın değerini gösteren iki onaltılık (hexadecimal) basamakla değiştirir.
Bu Araç Nasıl Kullanılır?
Düz metni URL için güvenli bir dizeye dönüştürmek istiyorsanız Kodla seçeneğini, yüzde kodlamalı bir dizeyi yeniden okunabilir metne çevirmek için Çöz seçeneğini seçin. Metninizi yazın veya yapıştırın ve gönderin. Araç ayrıca giriş ve çıkış karakter uzunluklarını da gösterir; böylece kodlamanın metni ne kadar büyüttüğünü kolayca görebilirsiniz.
Formülün Açıklaması
Ayrılmamış (unreserved) karakter kümesi şunlardır: A–Z a–z 0–9 - _ . ~. Bu kümenin dışında kalan her bayt kodlanır.
Örneğin boşluk karakterinin bayt değeri 32'dir; bu değerin onaltılık karşılığı 0x20 olduğundan boşluk %20 hâline gelir. Metin önce UTF-8 kullanılarak baytlara dönüştürülür; bu nedenle çok baytlı karakterler (emoji veya aksanlı harfler gibi) bayt bayt kodlanır. Çözme işlemi ise süreci tersine çevirir: her %XX üçlüsü onaltılık bir bayt olarak okunur ve toplanan baytlar UTF-8 olarak yorumlanır.
Çözümlü Örnek
hello world! ifadesini kodlayalım: h-e-l-l-o harfleri ayrılmamış karakterlerdir ve aynen kalır. Boşluk %20 olur, ünlem işareti (bayt \(33 = \text{0x21}\)) ise %21 olur. Sonuç şu şekildedir: hello%20world%21.
Sık Sorulan Sorular
Bu araç artı işaretini boşluk olarak mı kodluyor? Kodlama yapılırken boşluklar %20 olur (RFC 3986 biçimi). Çözme yapılırken ise form verileriyle uyumluluk için tek başına bir + işareti boşluk olarak değerlendirilir.
Neden bazı karakterler değişmeden kalıyor? Harfler, rakamlar ve dört ayrılmamış sembol olan - _ . ~ karakterleri RFC 3986'ya göre hiçbir zaman kodlanmaya ihtiyaç duymaz.
Unicode destekliyor mu? Evet. Metin UTF-8 olarak işlenir; bu sayede ASCII dışındaki karakterler birden fazla %XX baytı olarak kodlanır ve geri çözüldüğünde doğru biçimde elde edilir.