URL Kodlama / Çözme
URL bileşenlerini ve sorgu dizgelerini yüzde kodlayın ya da çözün
Bu araç hakkında
Boşluk, ve işareti ya da ASCII dışı harfler bir URL’de ham hâlleriyle bulunamaz; bu yüzden yüzde kodlanırlar: boşluk %20, 你 ise %E4%BD%A0 olur. Bu araç metni URL’ye güvenle konabilecek şekilde kodlar ve yüzde kaçışlı dizgeleri okunur metne geri çözer; sorgu dizgelerinde boşluk için kullanılan + geleneği de dâhil.
İki kodlama modu sunulur, çünkü JavaScript’in kendisinde de iki tane vardır: bileşen modu (encodeURIComponent) URL’yi bölebilecek her şeyi kaçışlar — tek bir sorgu değeri için isteyeceğiniz budur; tam URI modu (encodeURI) ise /, ? ve & gibi yapısal karakterleri korur, yani gezinilebilir kalması gereken bütün bir URL’yi kodladığınız durumlar için uygundur.
Çözme, bozuk % dizileri konusunda katıdır — tek başına bir % ya da %ZZ sessizce geçirilmek yerine hata olarak bildirilir; tarayıcılar ve sunucular da tam olarak böyle davranır.
Sıkça sorulan sorular
- Ne zaman bileşen modunu, ne zaman tam URI modunu kullanmalıyım?
- Bir URL’nin içine girecek bir değeri kodluyorsanız (arama sorgusu, yönlendirme hedefi, parametredeki e-posta adresi) → bileşen modu; böylece değerin içindeki & ve = sorgu dizgesini bozmaz. Görüntülemek veya taşımak için eksiksiz bir URL kodluyorsanız → tam URI modu; böylece URL’nin yapısı korunur.
- + neden bazen boşluk anlamına geliyor?
- HTML form gönderimlerinde ve sorgu dizgelerinde kullanılan application/x-www-form-urlencoded biçimi, tarihsel olarak boşlukları + ile kodlar. URL yollarında ise + sadece artı işaretidir. Buradaki çözücü sorgu dizgesi anlambilimine uyarak + karakterini boşluk sayar; %20 ise her yerde çalışır.
- Dizgem neden çift kodlanmış görünüyor (%2520)?
- %25, % karakterinin kendi kodlamasıdır; yani %2520, %20 metninin ikinci kez kodlandığı anlamına gelir. Bu, sistemin iki katmanının da kodlama yapmasıyla olur. Açmak için burada iki kez çözün, sonra kodlamaması gereken katmanı düzeltin.
- Unicode karakterler doğru işleniyor mu?
- Evet — WHATWG URL standardına göre metin önce UTF-8 olarak kodlanır, sonra her bayt yüzde kaçışlanır. Tek bir CJK karakterinin üç %XX grubuna dönüşmesinin nedeni budur.